1

我正在使用 Casandra 2.0

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

我正在考虑每 24 小时将 30-40GB 的数据推送到 cassandra,并在 24 小时内过期。我目前的方法是为我插入的所有内容设置一个 TTL。

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

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

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

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

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

除了必须处理用户从重叠键空间的请求中读取的键空间问题之外,该计划是否还有其他重大缺陷?

4

1 回答 1

1

从我的实践来看,使用分区比使用 ttl 好得多。

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