Почему битовый массив блока bloomfilter для leveldb должен быть разделен на множество блоков фильтров? - PullRequest
0 голосов
/ 21 декабря 2018

Поскольку таблица открыта, целые блоки фильтров будут сохранены в памяти, будет ли проще, если будет только один битовый массив bloomfilter?

1 Ответ

0 голосов
/ 02 января 2019

RocksDB использует другой дизайн: он использует Фильтры Блума, охватывающие весь файл SST .

Я не очень знаком с дизайном leveldb, но, вероятно, причина, по которой leveldb не делает 'Это из-за простоты.Кроме того, если каждый блок имеет отдельный фильтр Блума, то в памяти должен храниться только один блок.Таким образом, leveldb оптимизирован для случая, когда поиск связан, а RocksDB оптимизирован для скорости.Объединение фильтра Блума немного уменьшает размер фильтра Блума, но требует загрузки всего фильтра Блума.

...