Модуль xlog
Модуль xlog включает в себя одну функцию: pairs(). Ее можно
использовать для чтения файлов снимка или
файлов журнала упреждающей записи (WAL) в Tarantool.
Описание формата файла дается в разделе
Персистентность данных и формат WAL-файла.
Открытие файла и итерация по одной записи файла за раз.
Возвращает
итератор, который можно использовать в цикле for/end.
Тип возвращаемого значения
[итератор](https://www.lua.org/pil/7.1.html)
Возможные ошибки:
Файл не содержит снимок в правильном формате или информацию журнала упреждающей записи.
Пример:
В данном примере производится чтение первого WAL-файла, который был создан в директории wal_dir в рамках наших упражнений в "Руководстве для начинающих".
Каждый результат из pairs() выводится в формате MsgPack, поэтому
его структуру можно указать с помощью
__serialize.
xlog = require('xlog')t = {}for k, v in xlog.pairs('00000000000000000000.xlog') dotable.insert(t, setmetatable(v, { __serialize = "map"}))endreturn t
Первые строки результата будут выглядеть следующим образом:
(...)---- - {'BODY': {'space_id': 272, 'index_base': 1, 'key': ['max'],'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}}