2015-12-21 57 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