[英]Cassandra query execution sequencing vs Eventual consistency issue
我对cassandra最终的持久性与查询排序感到困惑,我有以下问题
我的java代码看起来像这样
public void foo(){
delete(entity);//First delete a record
create(entity); //Second create a record
}
另一件事我没有在我的查询中指定任何时间戳。
2)我的第二个问题是,卡桑德拉最终是一致的。 如果我按顺序发送上述查询并且它没有被复制到所有节点,那么这些查询是否会在实际将其复制到所有节点时保持顺序?
我试着查看cassandra文档,虽然它讨论了批处理操作中的查询排序,但它没有讨论非批处理操作中的查询排序。
我正在使用cassandra 2.1
默认情况下,在现代版本中,我们使用客户端时间戳。 在这里查看驱动程序文档:
https://datastax.github.io/java-driver/manual/query_timestamps/
基于时间戳,如果创建具有比删除更早的时间戳,则C *使用LWW启发式(最后写入获胜)进行操作,查询将不返回数据。 如果create有一个更新的时间戳,它会。
如果您需要线性化,即保证某些操作将按顺序执行,您可以使用基于paxos的轻量级事务:
http://www.datastax.com/dev/blog/lightweight-transactions-in-cassandra-2-0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.