2013-03-28 36 views
-1

似乎每個列都需要一個名稱,並且將按照您提供的名稱所暗示的順序進行存儲。如何將列添加到Cassandra中的特定行中

如果我不關心這個名字,只要它被附加到現有的列上(這樣它會在插入發生時存在的所有列之後出現)呢?

實際上,我要求一個原子auto_increment列名,以便我可以保證併發嘗試追加列不會踩在彼此的腳趾上,並且都出現在列列表的末尾附近(所以UUID名稱並不是我想要的)。

用例實際上是一個日誌(對於一個特定的鍵,所以我希望它保留在一個特定的行內),這個日誌將會很少更新,但可以同時完成。如果我只是使用時間戳作爲列名,那麼使用相同的時間戳和數據丟失進行兩次併發編輯的可能性很小,我不希望發生這種情況。

在Cassandra中是否有這種可能?

回答

3

您應該使用TimeUUIDType。據時間排序,幷包括:

  • 時間戳(第100納秒)
  • 隨機分量,以避免碰撞(以非常高的概率)
  • 發電機的MAC地址,以避免跨機器的碰撞。

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

相關問題