cassandra:实施全球秩序

时间:2014-10-07 05:11:50

标签: cassandra nosql

我正在尝试使用cassandra为事件采购创建事件存储,并了解它是如何适合这种用法的。 Keyspace包含一个表:

CREATE TABLE commits (
  stream_id text, 
  version bigint, 
  'timestamp' timestamp, 
  commit blob,
  PRIMARY KEY(stream_id, version)
);

我需要3个基本操作:

  • 将提交附加到此表。这个很容易,因为每个stream_id单个作家我都可以。
  • 获取stream_id的所有提交,并以version为界。这也不难,但我认为性能可以某种方式得到改善。目前的实施: SELECT * FROM commits WHERE stream_id = ? AND version >= ? AND version <= ? ORDER BY version;
  • 我无法实现的最难的:获取由timestamp >= ? AND timestamp <= ?或其他全局序列号限定的所有提交。

我理解全局排序在分布式系统中是一种邪恶。此查询不会经常使用。更好的是使用一些计数器而不是时间戳。 如何在cassandra中实现此要求?

0 个答案:

没有答案