Использует ли Cassandra память Heap для хранения фильтра Блумса и сколько места она занимает для 100 ГБ данных? - PullRequest
2 голосов
/ 27 сентября 2011

Я узнал, что Кассандра для производительности использует фильтр blooms и сохраняет эти данные фильтра в физической памяти.

1) Где Кассандра хранит эти фильтры? (В куче памяти?)

2) Сколько памяти занимают эти фильтры?

1 Ответ

2 голосов
/ 27 сентября 2011

При работе фильтры Блума должны храниться в памяти, поскольку их цель - избежать дискового ввода-вывода.

Однако каждый фильтр сохраняется на диск вместе с другими файлами, составляющими каждый SSTable - см. http://wiki.apache.org/cassandra/ArchitectureSSTable

Фильтры, как правило, составляют очень небольшую долю от размера данных, хотя реальное соотношение, кажется, немного различается. На тестовом узле, который у меня есть, самый большой фильтр, который я могу найти, - это 3,3 МБ, что на 1 ГБ данных. Однако для другого файла данных объемом 1,3 ГБ фильтр составляет всего 93 КБ ...

Если вы работаете с Cassandra, вы можете сами проверить размер фильтров, посмотрев в каталоге данных файлы с именем * -Filter.db

...