2015-08-08 62 views
1

我有2个集合(边集合),并且都具有相似类型的数据。每个文件都有大约40万个文件。但其中一个集合占用了超过两倍的磁盘空间。我想知道为什么它是这样的。我做了很多更新/替换。难道是因为arangodb保留了​​所有修改吗?数据文件占用了90%的空间。如果是因为修订版,我怎么才能停用修改版。arangodb中按集合的奇怪磁盘空间利用率

+0

的通过看“数字”我看到死的文件大小是巨大的。我怎样才能禁用保存死的文件? –

+0

doCompact被设置为false –

+0

ArangoDB为[MVCC]保留[修订](https://docs.arangodb.com/Documents/DocumentAddress.html)(https://docs.arangodb.com/AdministratingArango/index .html),但原因也可能是数据文件的[二次增长](https://en.wikipedia.org/wiki/Dynamic_array#Geometric_expansion_and_amortized_cost)。例如,如果超过512MB的分配空间,即使实际只需要513MB,大小也会增加到1024MB。其中一个集合可能目前在511MB,另一个稍微超过512MB,导致后者的大小是其两倍。 – CoDEmanX

回答

2

压缩器​​线程通常用于清理未使用的WAL文件。这已经由ArangoDB完成了。因此,使用该空间的文件不再在ls中显示。

这种情况是由禁用压缩程序线程来节省系统性能造成的,因此很多文件一次被释放。

但是,由于某些原因,arangod没有关闭文件句柄,导致文件系统不释放被删除文件的空间。

这可以通过重新启动ArangoDB守护进程来解决 - 关闭时保存的文件句柄被关闭并释放空间。

同时非关闭WAL-文件的问题已得到修复,可作为ArangoDB 2.8.6