我们使用Cassandra进行日志收集。 每小时约150,000 - 250,000条新纪录。 我们的列家族有几个列,比如'host','errorlevel','message'等,以及特殊索引列'indexTimestamp'。 此列包含四舍五入至几小时的时间。Cassandra slow get_indexed_slices速度
所以,当我们希望得到一些记录,我们使用的是第一IndexExpression get_indexed_slices()由indexTimestamp(含EQ运营商),然后其他一些IndexExpressions - 由主机,错误级别等
获得当记录只通过indexTimestamp一切工作正常。 但是,当通过indexTimestamp获取记录时,例如host - cassandra长时间工作(超过15-20秒)并引发超时异常。
据我所知,当通过索引列和非索引列获取记录时,Cassandra首先通过索引列获取所有记录,然后通过非索引列对其进行过滤。
那么,为什么卡桑德拉这么慢呢?通过indexTimestamp,不超过250,000条记录。不可能在10秒时过滤它们吗?
我们的Cassandra集群运行在具有4个CPU和4 GB内存的一台计算机(Windows 7)上。