首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cassandra查询执行顺序与最终一致性问题

问Cassandra查询执行顺序与最终一致性问题
EN

Stack Overflow用户
提问于 2016-06-03 23:04:00
回答 1查看 217关注 0票数 1

我对cassandra最终的恒恒性和查询顺序感到困惑,我有以下问题

  1. 如果我按顺序发送两个查询(不打开isIdempotent属性)。第一个查询是删除记录,第二个查询是创建记录。查询2是否可能在查询1之前执行。

我的java代码将如下所示

代码语言:javascript
复制
 public void foo(){
   delete(entity);//First delete a record
   create(entity); //Second create a record
}

另一件事是我没有在查询中指定任何时间戳。

2)我的第二个问题是,卡桑德拉最终是一致的。如果我按顺序发送上述两个查询,并且它没有被复制到所有节点,那么当这些查询实际上被复制到所有节点时,这些查询会维持这个顺序吗?

我试着查看cassandra文档,虽然它讨论了批处理操作中的查询排序,但它没有谈到非批处理操作中的查询排序。

我正在使用cassandra 2.1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-04 16:04:33

默认情况下,在现代版本中,我们使用客户端时间戳。在这里查看驱动程序文档:

timestamps/

基于时间戳,C*使用LWW启发式(最后写赢)操作,如果创建的时间戳早于delete,查询将不会返回数据。如果创建具有较新的时间戳,则会。

如果需要线性化,即保证某些操作将按顺序执行,则可以使用基于paxos的轻量级事务:

http://www.datastax.com/dev/blog/lightweight-transactions-in-cassandra-2-0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37624652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档