Concurrency 如何将列附加到Cassandra中的特定行

Concurrency 如何将列附加到Cassandra中的特定行,concurrency,cassandra,Concurrency,Cassandra,似乎每个列都需要一个名称,并将按照您指定的名称所隐含的顺序存储 如果我不关心名称,只要它被附加到现有列上(这样它就会出现在插入时存在的所有列之后),该怎么办 实际上,我要求的是一个原子自动递增的列名,这样我就可以保证并发追加列的尝试不会互相影响,并且都出现在列列表的末尾(因此UUID名称不是我想要的) 用例实际上是一个日志(对于特定的键,所以我希望它保持在一个特定的行中),它相对很少更新,但可以同时完成。如果我只是使用时间戳作为列名,那么两次并发编辑使用相同的时间戳和数据丢失的可能性很小,这是我

似乎每个列都需要一个名称,并将按照您指定的名称所隐含的顺序存储

如果我不关心名称,只要它被附加到现有列上(这样它就会出现在插入时存在的所有列之后),该怎么办

实际上,我要求的是一个原子自动递增的列名,这样我就可以保证并发追加列的尝试不会互相影响,并且都出现在列列表的末尾(因此UUID名称不是我想要的)

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


在Cassandra中可能有这种情况吗?

您应该使用TimeUUIDType。它是按时间顺序排列的,包括:

  • 时间戳(分辨率为100纳秒)
  • 避免碰撞的随机组件(概率非常高)
  • 生成器的MAC地址,以避免机器之间的冲突
如果希望始终获取最新的列,可以使用ReversedType将其包装起来,以提高效率