我对cassandra最终的恒恒性和查询顺序感到困惑,我有以下问题
我的java代码将如下所示
public void foo(){
delete(entity);//First delete a record
create(entity); //Second create a record
}另一件事是我没有在查询中指定任何时间戳。
2)我的第二个问题是,卡桑德拉最终是一致的。如果我按顺序发送上述两个查询,并且它没有被复制到所有节点,那么当这些查询实际上被复制到所有节点时,这些查询会维持这个顺序吗?
我试着查看cassandra文档,虽然它讨论了批处理操作中的查询排序,但它没有谈到非批处理操作中的查询排序。
我正在使用cassandra 2.1
发布于 2016-06-04 16:04:33
默认情况下,在现代版本中,我们使用客户端时间戳。在这里查看驱动程序文档:
基于时间戳,C*使用LWW启发式(最后写赢)操作,如果创建的时间戳早于delete,查询将不会返回数据。如果创建具有较新的时间戳,则会。
如果需要线性化,即保证某些操作将按顺序执行,则可以使用基于paxos的轻量级事务:
http://www.datastax.com/dev/blog/lightweight-transactions-in-cassandra-2-0
https://stackoverflow.com/questions/37624652
复制相似问题