gpt4 book ai didi

nosql - ArangoDB 可以像 MongoDB 或 CouchDB 一样扩展吗

转载 作者:行者123 更新时间:2023-12-01 07:20:48 24 4
gpt4 key购买 nike

我正在阅读有关 ArangoDB 的内容,它更有趣,但我无法在文档中找到 ArangoDB 如何扩展的位置。 ArangoDB 可以扩展吗,它可以像 MongoDB 或 CouchDB 一样使用分片吗?

最佳答案

编辑

ArangoDB supports sharding since Version 2.0.

Version 3.0 will bring VelocyPack, which is a binary JSON representation optimized for compactness, parseability and composeability. It supersedes the shape concept / shaped JSON.


/编辑

我是 ArangoDB 的首席架构师。
monkegjinni 是对的,ArangoDB 不支持分片,但支持复制。为什么?
短版:
为图形和文档等相当复杂的数据模型提供支持会与分片的工作方式发生冲突。但是,随着现代 SSD 和计算机的效率,我们相信几乎所有项目都不再需要分片。今天的计算机可以轻松地将所有数据存储在单个节点上。这些项目需要的是 ArangoDB 支持的负载分配复制。
长版:
实际上有分开的缩放问题。
第一个问题是将请求分发到多个服务器上以平衡请求负载。
ArangoDB 将通过写入的同步复制和读取请求的分发来支持这一点。
请注意,大多数数据库系统遵循非常相似的路径,即,它们支持以受限的一致性保证分发请求,或者仅允许在一个节点上写入并分发读取请求。他们有这个限制,因为分发写请求和支持完全一致性是不可能有效地完成的。效率低下会抵消我们希望通过分配实现的 yield 。
第二个问题是将数据分布在多个服务器上以允许更大的数据集。
ArangoDB 不支持将数据分布在多个服务器上。
我们做出了这个决定,因为在多台服务器上分发数据总是要付出代价的。
这个价格可以非常明确。例如,数据模型可能非常有限。这是 Dynamo 或 RIAK 等键值存储所采用的路线。这里的数据模型和支持的查询非常简单,以至于始终可以将查询定向到请求值所在的服务器(或少数服务器)。
请注意,我们确实相信这种方法对某些应用程序(例如亚马逊数据库)有效。但我们认为,真正需要存储如此多数据以至于必须将数据分布在大量服务器上并因此必须将访问模式限制为键值的应用程序数量非常少。
或者可以隐藏价格。例如,如果数据是分布式的并且数据库系统允许一般查询,就会出现这种情况。在这种情况下,查询必须分布在所有服务器上(因为您要查找的数据可能存在于任何服务器上)。这使得查询效率低下。
ArangoDB 的方法是将最多的资源挤到一台服务器上(ArangoDB 支持多台服务器 - 但为了支持可用性)。为此,它使用两种主要策略。
一种策略是使用 SSD。请注意,SSD 的容量正在以令人难以置信的速度增长(您可以购买 1 TB 的 SSD,其成本远低于第二台服务器的成本)。耐用性(可以写入 SSD 的数据总量)高达 PB(现在供应商终于获得了正确的磨损均衡算法)——因此 SSD 的可靠性不再是问题。而且这些固态硬盘的性能非常好(比普通磁盘更接近主存)。
另一种策略是有效地存储数据。 ArangoDB 使用形状来存储文档:形状是文档具有的属性和属性类型的信息——所有具有相同形状的文档共享此信息的表示。这意味着文档可以存储在比 JSON 或 BSON 表示所需的空间更少的空间中。

关于nosql - ArangoDB 可以像 MongoDB 或 CouchDB 一样扩展吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10084990/

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