Модуль xlog
Модуль xlog включает в себя одну функцию: pairs()
. Ее можно использовать для чтения файлов снимка или файлов журнала упреждающей записи (WAL) в Tarantool. Описание формата файла дается в разделе Персистентность данных и формат WAL-файла.
-
xlog.
pairs
([file-name])¶ Открытие файла и итерация по одной записи файла за раз.
возвращает: итератор, который можно использовать в цикле for / end. тип возвращаемого значения: итератор Возможные ошибки: Файл не содержит снимок в правильном формате или информацию журнала упреждающей записи.
Пример:
В данном примере производится чтение первого WAL-файла, который был создан в директории wal_dir в рамках наших упражнений в «Руководстве для начинающих».
Каждый результат из
pairs()
выводится в формате MsgPack, поэтому его структуру можно указать с помощью __serialize.xlog = require('xlog') t = {} for k, v in xlog.pairs('00000000000000000000.xlog') do table.insert(t, setmetatable(v, { __serialize = "map"})) end return t
Первые строки результата будут выглядеть следующим образом:
(...) --- - - {'BODY': {'space_id': 272, 'index_base': 1, 'key': ['max_id'], 'tuple': [['+', 2, 1]]}, 'HEADER': {'type': 'UPDATE', 'timestamp': 1477846870.8541, 'lsn': 1, 'server_id': 1}} - {'BODY': {'space_id': 280, 'tuple': [512, 1, 'tester', 'memtx', 0, {}, []]}, 'HEADER': {'type': 'INSERT', 'timestamp': 1477846870.8597, 'lsn': 2, 'server_id': 1}}