2014-05-02 4 views
1

Какие данные хранит Кассандра в памяти? Индексы, метаданные, ключи?Как Кассандра использует память

Потому что для Couchbase, хотя данные сохраняются на диске, все метаданные и ключи все еще находятся в памяти. Это создает проблему, потому что использование памяти будет увеличиваться, и никакие дополнительные вставки не будут возможны, как только память будет превышена.

Является ли Кассандра подобным в этом смысле?

ответ

1

Cassandra хранит пары ключ/значение всех сконфигурированных столбцов-семейств в структурах данных памяти, называемых Memtables. И позже он сбрасывает данные в памяти на диск во время компакции или когда достигается порог (~ 64 Мб). Посмотрите на эту Кассандры вики: http://wiki.apache.org/cassandra/MemtableThresholds

+0

Не забывайте ключ (по умолчанию, но можно отключить) и кеширование столбцов. Кроме того, эта ссылка [memtables] (https://wiki.apache.org/cassandra/MemtableSSTable) будет хорошим знаком с тем, что есть в Memtable, и когда он очищается на диске, чтобы освободить место кучи. –

+0

Привет, так что, если я правильно понял, как только Кассандра покраснет, в памяти ничего не останется? Нет ключей или метаданных в памяти, которые хранятся для быстрого поиска в будущем? – twb

+0

@ Даниэль указал, что Bloomfilters за sstable, Row & Column caches, резюме разделов все в памяти. См. Следующую ссылку о Cassandra Reads: [ссылка] (http://www.datastax.com/documentation/cassandra/1.2/cassandra/dml/dml_about_reads_c.html) – user2461517

0

Cassandra делает потребности только три вещи, чтобы хранить постоянно в памяти: (1) Bloomfilters (очень редкие), (2) строка & (3) кэш-столбец (любой тогда и только тогда существует). Кроме того, Кассандре нужна память для самого большого стола - я полагаю, что самого большого ResultSet должно быть достаточно. Поэтому Кассандра может быть в порядке с довольно спускной памятью.

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