gpt4 book ai didi

cassandra - 与 Cassandra 数据模型的事务

转载 作者:行者123 更新时间:2023-12-04 21:23:48 26 4
gpt4 key购买 nike

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

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

我不认为这是很多人关心的问题,因此我想知道为什么。

  • 这是因为我们总能找到一种方法来设计我们的数据模型,以避免在一个 session 中进行多次读取和写入吗?
  • 这是因为我们可以忽略“正确”的部分吗?
  • 在实际实践中,我们是否总是在中间某个地方拥有 ACID 功能?我的意思是可能在应用程序层实现或添加一个中间件来处理它?
  • 最佳答案

    它确实与人们有关,但大概您正在使用 cassandra,因为由于可扩展性或可靠性问题,单个数据库服务器无法满足您的需求。因此,您被迫解决分布式系统的局限性。

    In real practice, do we always have ACID feature somewhere in the middle? I mean maybe implement in application layer or add a middleware to handle it?



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

    如果您正在更新多个列以满足查询,您可以查看 eventually atomic本演示文稿中的部分有关如何做到这一点的想法。基本上你在写之前写了足够的关于你对 cassandra 的更新的信息。这样,如果写入失败,您可以稍后重试。

    如果您可以使用 Zookeeper 或 cages 等协调服务以这种方式构建应用程序可能有用。

    关于cassandra - 与 Cassandra 数据模型的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7297302/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com