卡桑德拉TTL VS.旋转Keyspaces进行数据排队

时间:2014-03-14 16:31:59

标签: cassandra cassandra-2.0

我正在使用Casandra 2.0

我的写入负载有点类似于此处提到的排队反模式:datastax

我期待每24小时将30-40GB的数据推入cassandra,并在24小时内将数据到期。我目前的方法是在我插入的所有内容上设置TTL。

我正在尝试如何对数据进行分区,如下所示:cassandra wide vs skinny rows

我有两个列系列。第一个族包含元数据,第二个族包含数据。 N个元数据到1个数据,并且元数据可以在一天内重写M次以指向新数据。

我怀疑元数据流失导致读取问题,找到正确的元数据可能需要扫描所有M项。

我怀疑数据流失会导致过度的工作压缩和垃圾收集。

似乎每天创建一个密钥空间并在24小时后删除旧的密钥空间将删除完全不需要进行压缩。

除了必须处理用户从重叠密钥空间的请求中读取的密钥空间的问题之外,该计划还有其他任何主要缺陷吗?

1 个答案:

答案 0 :(得分:1)

从我的练习中使用分区比使用ttl好得多。

  1. 降低cpu压力
  2. 它以Oracle方式对您的数据进行分区,因此搜索速度更快。
  3. 您可以改变主意并保留旧数据;使用ttl很困难(我看到一个选项 - 在删除之前迁移数据)
  4. 如果你的行很宽,你可以让它们变窄。