Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Cassandra数据模型进行事务处理_Cassandra_Consistency_Eventual Consistency - Fatal编程技术网

使用Cassandra数据模型进行事务处理

使用Cassandra数据模型进行事务处理,cassandra,consistency,eventual-consistency,Cassandra,Consistency,Eventual Consistency,根据CAP理论,卡桑德拉只能有最终的一致性。更糟糕的是,如果我们在一个请求中有多个读写操作,而没有正确的处理,我们甚至可能失去逻辑一致性。换句话说,如果我们做事快,我们可能会做错 同时,为Cassandra设计数据模型的最佳实践是考虑我们将要进行的查询,然后向其中添加CF。这样,添加/更新一个实体意味着在许多情况下更新多个视图/CFs。如果没有原子事务特性,就很难做到正确。但有了它,我们又失去了A和P部分 我不认为这关系到很多人,因此我想知道为什么 这是因为我们总能找到一种方法来设计我们的数据

根据CAP理论,卡桑德拉只能有最终的一致性。更糟糕的是,如果我们在一个请求中有多个读写操作,而没有正确的处理,我们甚至可能失去逻辑一致性。换句话说,如果我们做事快,我们可能会做错

同时,为Cassandra设计数据模型的最佳实践是考虑我们将要进行的查询,然后向其中添加CF。这样,添加/更新一个实体意味着在许多情况下更新多个视图/CFs。如果没有原子事务特性,就很难做到正确。但有了它,我们又失去了A和P部分

我不认为这关系到很多人,因此我想知道为什么

  • 这是因为我们总能找到一种方法来设计我们的数据模型,以避免在一个会话中进行多次读取和写入吗
  • 这是因为我们可以忽略“正确”的部分吗
  • 在实际中,我们中间是否总是有酸性特征?我的意思是可能在应用层实现,或者添加一个中间件来处理它
它确实让人担心,但您可能正在使用cassandra,因为单个数据库服务器无法满足您的需求,这是因为存在可扩展性或可靠性问题。因此,您不得不绕过分布式系统的限制

在实际操作中,我们是否总是在系统中的某个地方具有酸性特征 中间的我的意思是可能在应用层实现或添加 怎么办

不,通常在其他地方不会有酸,因为可能其他地方也必须分布在多台机器上。相反,您可以围绕分布式系统的限制来设计应用程序

如果要更新多个列以满足查询,可以查看本演示文稿中的部分,了解如何更新。基本上,在你写之前,你要写足够的关于你的更新的信息给卡桑德拉。这样,如果写入失败,您可以稍后重试


如果您能以这种方式构建应用程序,请使用Zookeeper或类似的协调服务可能会很有用。

感谢您的回复,很抱歉您的回复太晚。