Caching 如何限制OrientDB中使用的预写日志文件(WAL)

Caching 如何限制OrientDB中使用的预写日志文件(WAL),caching,orientdb,diskspace,Caching,Orientdb,Diskspace,我在嵌入式模式下使用OrientDB 2.1.3版。一切都很好(与传统H2存储相比,性能非常好),但存储空间不足。我在数据库中存储的信息很少,所以我不希望硬盘被临时文件浪费 在数据库目录中,我看到.wal文件不断增长(非常快)。因此,我对互联网进行了一些研究,最终得出以下结论: OGlobalConfiguration.DISK_CACHE_SIZE.setValue(16); OGlobalConfiguration.WAL_CACHE_SIZE.setValue(16); 但这没有任何作用

我在嵌入式模式下使用OrientDB 2.1.3版。一切都很好(与传统H2存储相比,性能非常好),但存储空间不足。我在数据库中存储的信息很少,所以我不希望硬盘被临时文件浪费

在数据库目录中,我看到
.wal
文件不断增长(非常快)。因此,我对互联网进行了一些研究,最终得出以下结论:

OGlobalConfiguration.DISK_CACHE_SIZE.setValue(16);
OGlobalConfiguration.WAL_CACHE_SIZE.setValue(16);
但这没有任何作用。
.wal
文件一直在增长,即使我删除了它,它也一直在增长超过16MB

即使设置了conf,什么会导致此文件增长


有没有办法将缓存文件保持在已知限制下?

数据库中没有缓存文件。缓存数据文件以提高系统性能。为磁盘缓存分配的RAM越多,系统运行的速度就越快。分配给磁盘缓存的RAM量不影响WAL大小

您设置的属性与墙尺寸无关。相反,您应该设置OGlobalConfiguration#WAL#u MAX#u SIZE属性

此外,单个WAL段大小为(OGlobalConfiguration#WAL#U MAX_segment_size)128 MB,因此WAL的大小不能小于128 MB,或者更准确地说,不能小于该设置的值

因此,总而言之,在调用OrientDB类之前,应该设置属性(OGlobalConfiguration#WAL#MAX#SEGMENT#大小,OGlobalConfiguration#WAL#缓存#大小)。理想情况下,应该通过系统属性(storage.wal.maxSegmentSize和storage.wal.maxSize)设置它们


请注意,使用如此小的值意味着在执行很少的操作后,必须强制刷新磁盘缓存,以便截断数据库日志(WAL)并将其保持在非常小的大小。

谢谢,它可以工作。我认为刷新是CPU消耗,但在什么样的比例?