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

How to limit write ahead log file (WAL) used in OrientDB

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

在数据库目录中,我看到 .wal 文件越来越大(非常快)。所以我在互联网上做了一些研究,结果是:

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

但这没有任何作用。 .wal 文件一直在增长,即使我删除它,它仍然增长超过 16 MB。

什么会导致此文件在设置 conf 的情况下仍不断增长?

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

数据库中没有缓存文件。缓存数据文件以加快系统性能。随着为磁盘缓存分配的 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) 并将其保持在非常小的大小。