我們使用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)上。