несколько экземпляров rockdb

На многоядерном сервере (или кластере) требуется развернуть базу данных rockdb на каждом ядре, которая не зависит друг от друга, т.е. не ищет распределенную базу данных. Это возможно?

Для каждой базы данных в памяти необходимо ли взаимодействовать с хранилищем во время выполнения операций, т.е. нет при запуске или закрытии или все операции с БД выполняются в памяти?


person Henry Thornton    schedule 01.10.2014    source источник


Ответы (1)


1) Да, это возможно. RocksDB — это просто библиотека C++, которую вы можете скомпилировать со своим кодом, управляющим несколькими экземплярами rockdb на многоядерном сервере (или кластере). Несколько экземпляров rockdb также могут совместно использовать один и тот же набор ресурсов (например, совместно использовать один и тот же пул потоков), используя один и тот же Env (см. Options::env).

// Use the specified object to interact with the environment,
// e.g. to read/write files, schedule background work, etc.
// Default: Env::Default()
Env* env;

2) если каталог вашего экземпляра rockdb находится в памяти (например, при монтировании через tmpfs), то все операции с БД гарантированно выполняются в памяти. Чтобы сделать такие rockdb постоянными, вы также можете дополнительно настроить запись журнала с опережающей записью в какое-либо постоянное хранилище, такое как флэш-память или диск.

person keelar    schedule 08.10.2014