【发布时间】:2015-10-31 23:04:52
【问题描述】:
我有 2 个集合(边缘集合)并且都有相似类型的数据。每个都有大约 40 万个文档。但是其中一个集合占用了两倍多的磁盘空间。我想知道为什么会这样。我做了很多更新/替换。可能是因为 arangodb 保留了所有的修订版吗? 90% 的空间被数据文件占用。如果是因为修订,我该如何禁用持久修订。
【问题讨论】:
-
通过查看“数字”,我发现死文档的大小很大。如何禁用保存死文档?
-
doCompact 顺便设置为 false
-
ArangoDB 为MVCC 保留revisions,但原因也可能是数据文件的quadratic growth。例如,如果超过 512MB 的分配空间,则大小会翻倍至 1024MB,即使实际上只需要 513MB。您的一个集合目前可能为 511MB,另一个略高于 512MB,导致后者的大小增加了一倍。
-
我有 469964 个文档,148 mb 磁盘用于活动,7805222 个文档,2.4 GB 用于死文档。如何禁用修订。 doCompact 设置为 false,因为我们遇到了性能问题,因为磁盘 i/o 一直很重。
-
将
doCompact设置为false实际上会导致文档的旧版本永久保存在数据文件中。将其设置为true将启动该集合中的清理过程。清理由后台线程执行,并将与该集合中的其他操作交错运行。如果大多数数据来自死文档,它可能会重写集合的所有数据文件。如果数据文件中的大多数文档都是死修订版,最终结果应该是磁盘使用量要少得多。
标签: arangodb