2013-03-28 37 views
-1

似乎每个列都需要一个名称,并且将按照您提供的名称所暗示的顺序进行存储。如何将列添加到Cassandra中的特定行中

如果我不关心这个名字,只要它被附加到现有的列上(这样它会在插入发生时存在的所有列之后出现)呢?

实际上,我要求一个原子auto_increment列名,以便我可以保证并发尝试追加列不会踩在彼此的脚趾上,并且都出现在列列表的末尾附近(所以UUID名称并不是我想要的)。

用例实际上是一个日志(对于一个特定的键,所以我希望它保留在一个特定的行内),这个日志将会很少更新,但可以同时完成。如果我只是使用时间戳作为列名,那么使用相同的时间戳和数据丢失进行两次并发编辑的可能性很小,我不希望发生这种情况。

在Cassandra中是否有这种可能?

回答

3

您应该使用TimeUUIDType。据时间排序,并包括:

  • 时间戳(第100纳秒)
  • 随机分量,以避免碰撞(以非常高的概率)
  • 发电机的MAC地址,以避免跨机器的碰撞。

如果你想总是得到最新的列,你可以用ReversedType包装它,以使它更有效率。

相关问题