Кассандра дает исключение тайм-аут после некоторых вставок - PullRequest
2 голосов
/ 13 февраля 2012

Я использую версию Cassandra 1.0.6 ... У меня есть около 1 миллиона объектов JSON по 5 КБ каждый для вставки в кассандру.По мере того, как вставки продолжаются, потребление памяти cassandra также увеличивается до тех пор, пока оно не стабилизируется до определенной точки. После некоторых вставок (около 2-3 lkhs) клиент ruby ​​выдает мне исключение "recv_batch_mutate": CassandraThrift :: TimedOutException ".

Я также пытался вставлять объекты JSON размером 1 КБ более миллиона раз.Это не дает никаких исключений.Также в этом эксперименте я построил график зависимости времени от 50000 вставок от количества 50000 вставок.Я обнаружил, что после некоторых итераций время вставки резко возрастает, и оно внезапно падает.Это может быть связано с сборкой мусора, выполненной JVM.Но то же самое не происходит при вставке 5 КБ данных миллион раз.

В чем может быть проблема ??Некоторые параметры конфигурации, которые я использую: - Система: -

  • 8 ГБ с 4-ядерным ..

Конфигурация Cassandra: - - concurrent_writes: 64

  • memtable_flush_writers: 4

  • memtable_flush_queue_size: 8

  • rpc_server_type: sync

  • thrift_framed_transport_size_in_mb: 30

  • in_memory_compaction_limit_in_mb: 64

  • многопоточный_компонент: true

DoМне нужно сделать какие-либо изменения в конфигурации.Это связано с пространством кучи JVM или сборкой мусора?

1 Ответ

2 голосов
/ 14 февраля 2012

Вы можете увеличить таймаут rpc до большего значения в конфигурационном файле cassandra, ищите rpc_timeout_in_ms .Но вы действительно должны заглянуть в свой клиент ruby ​​в части соединения.

# Time to wait for a reply from other nodes before failing the command
rpc_timeout_in_ms: 10000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...