Как принудительно сбрасывать memtable для каждой записи?

Я хотел бы сбрасывать memtable на диск после каждой операции обновления/записи (или, в любом случае, как можно чаще). Моя единственная цель — провести стресс-тестирование базового диска с помощью программного обеспечения базы данных производственного уровня.

Кажется, чтоmemtable_cleanup_thresholdэто путь, но он устарел, есть ли другой способ сделать это? Как насчетmemtable_heap_space_in_mbиmemtable_offheap_space_in_mb? Я не Java-программист, какой из них мне следует настроить без ущерба для остальных функций?

1 ответ

Вы также можете просто вызвать флеш на столе, выполнивnodetool flushили запускайте соответствующую операцию JMX после каждой записи. Однако Cassandra хранит данные, распределенные по многим узлам, и сброс всегда является операцией, привязанной к узлу. Чтобы узнать, какие узлы вам нужно сбросить, вам нужно будет запросить список конечных точек, на которых хранятся записанные данные (также доступны через JMX или с помощью nodetool), в противном случае вам нужно будет сбросить все узлы.

Хотя это нормально для целей тестирования, я бы не рекомендовал это для производства.

Другие вопросы по тегам