#rocksdb #okvs
Вопрос:
Прошлые ответы на переполнение стека предполагают, что однопоточный характер RocksDB означает, что ответ отрицательный, но в официальной документации FB есть страницы, подобные этой http://rocksdb.org/blog/2021/05/27/rocksdb-secondary-cache.html где несколько экземпляров, похоже, совместно используют кэш.
1)Используют ли эти экземпляры один и тот же диапазон ключей?
- Если да, то как передаются обновления от одного экземпляра БД к другому? Насколько я знаю, у RocksDB нет никакой связи между СУБД?
Комментарии:
1. Ваш вопрос неясен. У вас есть экземпляр rocksdb или несколько? Находятся ли они все в одном и том же процессе или потоке POSIX. Используете ли вы несколько экземпляров rocksdb (один и тот же env) внутри одного и того же процесса POSIX? Пожалуйста, дайте больше контекста.
2. @amirouche Я пытаюсь понять, как связаны несколько экземпляров RocksDB, которые совместно используют вторичный кэш? Находятся ли они в одном и том же процессе POSIX? И работают ли они логически с одним и тем же набором файлов во вторичном кэше или он разделен между каждым экземпляром.
3. Что вы имеете в виду под «однопоточной природой RocksDB»?
Ответ №1:
- Экземпляры БД не имеют общего диапазона ключей.
Просто К ТВОЕМУ сведению. один процесс может иметь несколько экземпляров RocksDB, каждый экземпляр может иметь несколько семейств столбцов. Они не обмениваются пользовательскими данными. Внутренне семейства столбцов в одном экземпляре совместно используют WAL (журнал предварительной записи), манифест (информация о базе данных отслеживания), файл опций. Экземпляры БД в одном процессе используют один и тот же Env, пул потоков, таймер, кэш.