2015-12-21 55 views
1

我在嵌入模式下使用OrientDB版本2.1.3。一切都很好(與傳統的H2存儲相比,性能非常好),但存儲空間更大。我有很少的信息存儲在數據庫中,所以我不希望HDD被臨時文件浪費。如何限制OrientDB中使用的預寫日誌文件(WAL)

在數據庫目錄中,我看到.wal文件正在增長和增長(非常快)。所以我做了一些關於互聯網的研究,最後得到:

OGlobalConfiguration.DISK_CACHE_SIZE.setValue(16); 
OGlobalConfiguration.WAL_CACHE_SIZE.setValue(16); 

但是這沒什麼用。 .wal文件不斷增長,即使我刪除它,它的增長也超過了16 MB。

什麼可以導致這個文件增長,即使建立了conf?

有沒有辦法將緩存文件保持在已知限制之下?

回答

2

數據庫中沒有緩存文件,緩存數據文件以加速系統性能,更多RAM將分配給磁盤緩存,系統將更快,爲磁盤緩存分配的RAM數量不會影響WAL大小。

您設置的屬性與WAL大小沒有任何關係,您應該設置OGlobalConfiguration#WAL_MAX_SIZE屬性。

此外,單個WAL段大小爲(OGlobalConfiguration#WAL_MAX_SEGMENT_SIZE)128兆,因此WAL的大小不能小於128兆字節,或者更精確地說,上述參數的值。因此,要包裝所有,在調用OrientDB類之前應該設置屬性(OGlobalConfiguration#WAL_MAX_SEGMENT_SIZE,OGlobalConfiguration#WAL_CACHE_SIZE),理想情況下應該通過系統屬性(storage.wal.maxSegmentSize和storage.wal .maxSize)。

請注意,使用這樣的小值意味着磁盤緩存必須在很少的操作之後強制刷新,以便截斷數據庫日誌(WAL)並使其保持非常小的大小。

+0

謝謝,它的工作原理。我認爲沖洗是CPU消耗,但是以什麼比例? – TrapII