Используются два узла Cassandra с коэффициентом репликации 2, но разных размеров в хранилище - PullRequest
0 голосов
/ 07 сентября 2018

У нас есть OpenNMS, отправляющая графические данные в наш кластер Cassandra / Newts, который состоит из 2 узлов Cassandra. Я установил коэффициент репликации на 2 для "newts" пространства ключей.

Я запустил узлы одновременно и оставил их на некоторое время, затем я запустил «newtool cfstats newts» на каждом узле, и оба узла имеют одинаковое количество записей.

Если я, однако, захожу в каталог данных "/ db / newts" каждого узла и запускаю "du -h", я вижу следующее:

  • Используется хранилище Node1: 36K
  • Используется Node2 хранилище: 12M

Как они могут различаться по размеру, если я устанавливаю коэффициент репликации равным 2? Я знаю, что они подключены к одному кластеру через «состояние узла», которое показывает оба узла как «UN» (вверх / нормально).

1 Ответ

0 голосов
/ 07 сентября 2018

В Cassandra данные не записываются напрямую на жесткий диск, они живут в:

Журнал коммитов >> Memtable >> SSTables

Здесь вы можете найти хорошую документацию о том, как записываются данные.

Вы можете запустить:

nodetool flush

, который сбросит памятные записи в sstables. После этого вы сможете увидеть одинаковый размер sstable на обоих ваших узлах.

...