【发布时间】:2014-08-14 13:42:57
【问题描述】:
我使用 Cassandra 来收集时间序列测量值。为了启用良好的分区,除了 device-id 我添加了 day-from-UTC-beginning 和一个基于书面测量创建的 bucket .时间被添加为集群键。最终的密钥可以写成
((device-id, day-from-UTC-beginning, bucket), measurement-uuid)
在大多数情况下,针对此架构的查询会使用给定的 device-id 和 day-from-UTC-beginning 使用 IN 获取整行> 用于水桶。因为这个查询模式Leveled Compaction 看起来像一个完美的匹配,因为它确保了一行被一个 SSTable 保存的可能性很大。 当附加到表被禁用时,运行增量修复很好。有一次,修复是在写入压力下运行的,涉及大量流。看起来流式传输的数据多于上次修复后追加的数据。
我尝试过使用多张桌子,每天一张。当一天结束并且没有对给定表进行进一步写入时,修复运行顺利。我知道thousands of tables overhead 虽然它看起来只是一个可行的解决方案。
在大量写入场景下,将 Leveled Compaction 与增量修复相结合的正确方法是什么?
【问题讨论】:
标签: cassandra