gpt4 book ai didi

transactions - ArangoDB 酸度

转载 作者:行者123 更新时间:2023-12-05 05:23:00 25 4
gpt4 key购买 nike

我一直在阅读 ArangoDB 文档,我得到的印象是事务性和 ACID 属性仅在单个服务器设置或集群设置中受支持,只要没有集合被分片。我希望我误读了文档,也许有人可以阐明我的误解。

以下是导致我得出结论的文件的链接:
https://docs.arangodb.com/3.0/AQL/Operations/Remove.html
https://docs.arangodb.com/3.0/AQL/Operations/Update.html
.../Replace.html
.../插入.html
.../Upsert.html

它们都有如下形式的声明(用上面链接中列出的适当 AQL 操作代替删除):

On a single server, the document removal is executed transactionally in an all-or-nothing fashion. For sharded collections, the entire remove operation is not transactional.

因此,如果我没看错的话——如果集合的大小增长到必须对其进行分片,那么就无法以事务方式执行任何 CRUD 操作,因此无法再保留 ACID 属性。

我的理解是否也是正确的,事务性和 ACID 属性可以保留在集群 ArangoDB 服务器安装中,前提是不需要对任何集合进行分片,但是,集合可以分布在多个节点上,每个节点保留它们的完整性节点,并且没有一个节点必须在其上显示所有集合。

我提前感谢任何可以阐明这个主题的人。

最佳答案

集群中的事务安全性与其他解决方案相当,多文档和集合查询的额外好处是 ACID,如果它们没有分布在多个节点上。

  • 使用 ArangoDB 的单个实例,保证多文档/多集合查询是完全 ACID 的。这超出了许多其他 NoSQL 数据库系统的支持。
  • 在 ArangoDB 集群中,单文档操作也是完全 ACID。
  • 集群中的多文档/多集合查询不是 ACID。我们竞争对手的数据库系统也是如此,比如MongoDB、OrientDB、Neo4j等。然而,我们积极追求在集群中支持完全 ACID 事务的目标,这将使 ArangoDB 有别于其他数据库解决方案。
  • 对于集群中的非分片集合,单个服务器的事务属性适用。这意味着,如果集合具有单个分片并因此驻留在单个数据库服务器上,则多文档查询是 ACID。

关于transactions - ArangoDB 酸度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38964033/

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