Cassandra在一些插入后给出了异常时间

时间:2012-02-13 09:00:08

标签: exception cassandra

我正在使用Cassandra 1.0.6版本......我有大约1百万个JSON对象,每个5KB,可以插入到cassandra中。随着插入的继续,cassandra的内存消耗也会上升,直到它稳定到某一点。经过一些插入(大约2-3 lkhs)后,ruby客户端给了我“`recv_batch_mutate':CassandraThrift :: TimedOutException”异常。

我还试过插入1KB大小的JSON对象超过一百万次。这没有任何例外。同样在这个实验中,我绘制了50000个插入时间与50000个插入数量之间的图表。我发现在一些迭代之后插入的时间急剧增加并且突然下降。这可能是由JVM完成的垃圾收集造成的。但是,在插入5KB数据一百万次时也不会发生同样的情况。

可能是什么问题?我正在使用的一些配置选项: - 系统: -

  • 8GB,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

  • multithreaded_compaction:true

我是否需要对配置进行任何更改。它与JVM堆空间有关还是由于垃圾收集?

1 个答案:

答案 0 :(得分:2)

您可以在cassandra配置文件中将rpc超时增加到更大的值,查找 rpc_timeout_in_ms 。但是你应该在连接部分看看你的ruby客户端。

# Time to wait for a reply from other nodes before failing the command
rpc_timeout_in_ms: 10000