Я пытаюсь загрузить данные в Cassandra, и это не работает. Я работаю на одном узле (ноутбук), но я вижу такое же поведение в небольшом кластере (3-5 узлов). Я запускаю Cassandra 3.9 с настройками по умолчанию.Ошибка Cassandra при записи данных
Я пишу из двух потоков, используя драйвер DataStax Java 3.0.0. Я пишу строки с 50 КБ строк с 5-10К столбцами. Общий набор данных составит около 40 ГБ на диске. Я пишу 5 строк одновременно/поток.
После вставки на некоторое время, я начинаю писать таймаут:
com.datastax.driver.core.exceptions.WriteTimeoutException: Cassandra timeout during write query at consistency LOCAL_ONE (1 replica were required but only 0 acknowledged the write)
я повторить попытку с экспоненциальным снижением мощности. В конце концов записи перестают поступать вперед. На данный момент, я вижу, очень долго GC паузы:
WARN [Service Thread] 2017-01-11 19:04:54,529 GCInspector.java:282 - ConcurrentMarkSweep GC in 4139ms. CMS Old Gen: 3456106376 -> 3455729576; Par Eden Space: 671088640 -> 670388064; Par Survivor Space: 83886080 -> 58722784
WARN [Service Thread] 2017-01-11 19:04:58,692 GCInspector.java:282 - ConcurrentMarkSweep GC in 4010ms. CMS Old Gen: 3456105584 -> 3455769528; Par Survivor Space: 83886080 -> 62960320
На данный момент, похоже, все время тратится на GC. Даже если я убью работу записи, Кассандра, похоже, не восстановится. В конечном итоге он умирает с OutOfMemoryError. Я опустил memtable пространство до 32Мб:
memtable_heap_space_in_mb: 32
memtable_offheap_space_in_mb: 32
и что, возможно, исправили ошибку ООМ (хотя, возможно, я просто не ждет достаточно долго).
Я надеялся, что Cassandra + экспоненциальный откат подавит писателя на максимальную равновесную скорость записи, но это, похоже, не происходит. Это нереалистичное ожидание для Кассандры? Я могу оценить лимит в писателе, но я не знаю, какая метрика разумна для ограничения ставок. Есть идеи?
Мое поведение очень похоже на: http://stackoverflow.com/questions/21715622/large-writes-cause-instability-in-cassandra-ring. Точка 4 в ответе Русса кажется актуальной. Это все еще не объясняет, как снизить скорость записи. –