Сравнение Tarantool WAL и Redis AOF

Redis с включенным параметром AOF (добавить только файл) может потерять только секунду данных. Я знаю, что в Tarantool по умолчанию установлено wal_move='write', так как этот режим обеспечивает сохранение данных для vinyl и memtx, и в каком случае это может привести к потере данных, которые невозможно восстановить?

Вторая часть вопроса: какую wal_mode настройку вы рекомендуете none/write/fsync для vinyl и memtx в частности?

Я хотел бы получить конструктивный ответ, потому что аналогичный вопрос задавался ранее, но возникло еще больше вопросов, и он не дал четкого ответа: Разница между Redis AOF и журналом Tarantool WAL


person Andrew Nodermann    schedule 10.07.2020    source источник


Ответы (1)


Wal-mode write 'может потерять не более 1 записи (при жесткой перезагрузке сервера); wal-mode fsync никогда не теряет данные.

Вы можете обратиться к документации tarantool здесь: https://www.tarantool.io/en/doc/1.10/reference/configuration/#confval-wal_mode.

Это означает, что для режима write каждая операция не подтверждается клиенту до тех пор, пока write системный вызов не завершится успешно, а для режима fsync он не подтверждается до тех пор, пока не будет успешно выполнен следующий fsync системный вызов.

Таким образом, в режиме fsync данные никогда не теряются - они сохраняются на диске до ответа клиенту. В режиме write при перезагрузке системы могут быть потеряны данные - данные, которые были приняты в буфер ОС, но не сброшены на диск. На типичных рабочих нагрузках мы сталкивались со случаями, когда в таком случае терялась одна операция.

person Dmitry Sharonov    schedule 16.07.2020