Cassandra做sliceRange读取很慢,TimedOutException

时间:2013-01-26 23:50:40

标签: cassandra pelops

Cassandra 1.0.12

我们有一个名为transactionRecords的列族,其rowkey为“ApplicationName”。 列族用于记录事务,其中namevalue对如(UUID,transInfo)。

在大约1.5K TPS的重负载下,1小时后,SliceRange查询非常慢。对于sliceRage,我们只设置限制,例如10000.开始和结束为空。我们想使用sliceRange读出事务信息,做一些业务逻辑,然后从Cassandra中删除。

我们使用org.scale7.cassandra.pelops.Mutator API插入到DB中:  Mutator.writeColumn(columnFamily,rowkey,Mutator.newColumn(uuid,string));

使用nodetool时,SliceRange读取时的延迟时间超过10秒。

但现在,读取时会出现TimedOutException。

有人有类似的问题吗?如何减少延迟? 我们的数据结构是否符合我们的目的? 有任何帮助或建议吗?

1 个答案:

答案 0 :(得分:2)

我认为这是我的编程错误。

当我进行范围扫描时,我总是从头开始(我有5G MEMTable),并且在DB中有越来越多的条目,扫描速度下降,最后它大于30秒,并导致TimedOutException。 / p>

通过更改为从先前停止的位置(在排序的键上)进行扫描,现在对我来说效果很好。