【问题标题】:When to use RocksDB and when to use MMFiles storage engine in ArangoDB?在 ArangoDB 中何时使用 RocksDB 以及何时使用 MMFiles 存储引擎?
【发布时间】:2019-02-10 23:10:36
【问题描述】:

我们使用 ArangoDB 来存储电信数据。我们应用程序的主要目标是让用户非常快速地构建某种类型的报告。这些报告主要基于我们在遍历不同图表时从 ArangoDB 获得的数据。报表的业务逻辑并不简单,这会导致具有多个嵌套遍历(子查询)的非常复杂的 AQL 查询。

我们在 ArangoDB 中存储的数据的快速概览:

  • 28 个文档集合(最大集合包含 3500K 文档,平均集合通常在 100K 到 1000K 之间)
  • 3 个带边缘的集合(335K 边缘、3500K 边缘和 15000K 边缘)
  • 3 个图(每个图都链接到一个边缘集合,最大的图有 23 个从/到集合)

整个数据集在完全加载(包括索引)时需要大约 28 GB 的 RAM。

我们已经使用 MMFiles 快两年了,对结果非常满意,除了一些问题:

  • 我描述的前所未有的内存消耗here
  • 重新启动非常慢(数据库再次完全响应之前需要 1 小时 30 分钟)
  • 事实上,我们必须使用具有 64 GB RAM 的非常昂贵的 VM 才能将所有数据放入 RAM 中

经过一些研究,我们开始研究新的 RocksDB 存储引擎。我已阅读:

从文档和proposed answers on my question about the problem with RAM consumption 可以看出,RocksDB 应该是我们的一种方式。所有的文件都说它是 ArangoDB 的新默认引擎,如果你想存储比 RAM 容量更多的数据,应该使用它。

我安装了新的 ArangoDB 3.4.1 并将我们的数据库从 MMFiles 转换为 RocksDB(通过 arangodumpaarangorestore)。然后我运行了一些性能测试,发现所有遍历都比我们使用 MMFiles 引擎慢 2-6 倍。一些使用 MMFiles 引擎需要 20 秒的查询现在使用 RocksDB 需要 40 秒,即使您多次运行相同的查询(即数据必须已经兑现)。

2019 年 2 月 15 日更新:

我们在 AWS 上的 m4.4xlarge 实例上的 docker 容器内运行 ArangoDB,具有 16 个 vCPU64 GB 的 RAM。我们为 ArangoDB 容器分配了 32 GB 的 RAM 和 6144 个 CPU 单元。以下是我们测试的简短摘要(数字显示执行特定 AQL 遍历查询所需的时间,格式为 HH:mm:ss):

注意,在这个特定的表格中,我们没有像我在原始问题中提到的那样,性能下降 10 倍。当我们在 ArangoDB 重新启动后立即运行 AQL 时,最大值会慢 6 倍(我猜这没问题)。但是,与 MMFiles 相比,大多数查询的速度要慢 2 倍,即使在所有数据必须已经缓存在 RAM 中的情况下再次运行它也是如此。 Windows 上的情况更糟(在那里我的性能下降了 10 倍甚至更多)。稍后我将发布我的 Windows PC 的详细规格以及性能测试。

我的问题是: RocksDB 引擎的 AQL 遍历速度会慢得多,这是一种预期行为吗?关于何时使用 MMFiles 引擎以及何时使用 RocksDB 引擎以及在哪些情况下不可以选择 RocksDB,是否有任何一般性建议?

【问题讨论】:

  • 你在什么硬件上测试了 RocksDB?它与您当前使用的 MMFiles 引擎相同吗?和同样的工作量?如果不是,请添加有关规格的详细信息以及您的 arangod 配置(如果不是默认配置)。
  • 请参阅我的 2019 年 2 月 15 日更新。稍后,我还将发布一些基于开发 Windows 的 PC 的其他性能测量结果。
  • 我无法为您解答,但与使用 MMFiles 相比,使用 RocksDB 时我们看到了类似的性能下降。我真的很想切换到 RocksDB,但性能似乎令人望而却步。对我们来说,最大的问题似乎是使批量加载成为问题的写入放大。我没有对查询性能进行详细测量,但有趣的是,它在 RocksDB 上似乎更慢。

标签: arangodb rocksdb


【解决方案1】:

随着 Arangodb 3.7 对 MMFiles 的支持已被删除,因此这个问题可以用“使用 Rocksdb”来回答。

我们花了一段时间才使 ArangoDB 中基于 RocksDB 的存储引擎成熟,但我们现在确信它完全可以处理所有负载。

我们演示了如何使用parts of the rocksdb storage system and which effects they have in this article

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2013-04-05
    • 2016-03-21
    • 2020-08-26
    • 2014-08-16
    • 2015-03-29
    • 1970-01-01
    相关资源
    最近更新 更多