0

Приложение C++ использует RocksDB для хранения наборов значений ключа в памяти.Сохранение сохраненных значений RocksDB между прогонами

В некоторых случаях я хочу, чтобы мое приложение сохраняло значения DB до следующего запуска. Значит, программа выключится, запустится снова и прочитает те же значения из БД, как и до ее закрытия.

Что было бы самым быстрым и простым способом достичь этого?

Я нашел следующую статью для резервного копирования & процедура восстановления - https://github.com/facebook/rocksdb/wiki/How-to-backup-RocksDB%3F, но, может быть, это перебор?

+0

Выглядит просто, почему вы думаете, что это перебор? Я думаю, что это простые шаги (но я думаю, это может быть намного проще). – Arunmu

+0

Это просто, но мне действительно нужна полная резервная копия, чтобы сохранить состояние БД? Я бы предположил, что резервное копирование является более обширной и базовой операцией. – Mugen

+0

Я не совсем уверен, но я думаю, вы должны иметь возможность сохранять данные на транзакцию синхронно или асинхронно. – Arunmu

ответ

1

Добавив к тому, что сказал yinqiwen, RocksDB не предназначался для хранения только в памяти. Он отлично работает с различными типами хранения. И это особенно хорошо с точки зрения производительности, когда дело доходит до флэш-памяти. Вы можете использовать множество RocksDB Options, чтобы поэкспериментировать с тем, какую конфигурацию лучше всего использовать для вашей рабочей нагрузки, но в большинстве случаев, даже с настройками по умолчанию для постоянных типов хранилищ, камни db должны работать нормально.

1

rockdb уже предоставляет некоторые способы сохранения в памяти базы данных RocksDB. u можете увидеть эту ссылку, чтобы настроить ваш rockdb. http://rocksdb.org/blog/245/how-to-persist-in-memory-rocksdb-database/

+0

Насколько я понимаю, эта статья посвящена резервной копии (на самом деле, добавлению отказоустойчивости) в БД памяти, которая никогда не должна храниться на персистентных носителях в первую очередь. Как вы думаете? – Mugen

+1

Файл данных сохраняется в tmpfs, что означает, что файл данных будет там до текущего перезапуска os. – yinqiwen

Смежные вопросы