2015-08-08 59 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