我一直在阅读ArangoDB文档,我得到的印象是,事务性和ACID属性只在单个服务器设置或集群设置中支持,只要没有任何集合被分片。我希望我误解了文档,也许有人可以解释一下我的误解。
以下是导致我得出结论的文件的链接:
https://docs.arangodb.com/3.11/aql/high-level-operations/remove/
https://docs.arangodb.com/3.11/aql/high-level-operations/update/
.../替换/
.../插入/
.../更新/
所有这些都有以下形式的声明(用上述链接中列出的适当AQL措施替代删除):
在单个服务器上,文档删除是以全有或全无的方式事务性地执行的。对于分片集合,整个移除操作不是事务性的。
因此,如果我没有阅读错的话--如果集合的大小增长到必须分片的程度,那么没有一个CRUD操作可以以事务的方式执行,因此ACID属性也就不再保留。
如果我的理解也是正确的,那么transactionality和ACID属性可以保留在集群ArangoDB服务器安装中,前提是没有集合必须被分片,然而,集合可以分布在多个节点上,每个节点都保留其完整性,并且没有节点必须拥有所有的集合。
我感谢任何人提前谁可以照亮这个主题。
Null
1条答案
按热度按时间hujrc8aj1#
集群中的事务安全性与其他解决方案相当,如果它们没有分布在多个节点上,那么多文档和集合查询的额外好处也是ACID。