如何从 geode 的磁盘存储中删除键和值?

How to remove the key and value from the disk store in geode?

在使用 Apache Geode/Gemfire 实现时,我的要求不仅是具有 IMDG 功能,而且我还想将值提交到磁盘存储。以防万一,我所有的 Geode 服务器都宕机了,我想把它们带回来并有一个持久性键值。

现在,当我从缓存中删除一个键时,该键和值将从所有集群缓存中删除(或者说我使用销毁模式进行逐出操作)。但是,磁盘space没有被回收或减少;所以,如果我继续对区域使用 persistence_overflow,我应该如何清理磁盘 space 以及容纳新条目?

同样,我知道有压缩选项,但是,我不是在寻找压缩,我想完全删除 key/value 对并回收磁盘 space?

据我所知,这在当前实现下是不可配置的:配置了 disk-store 的每个 GemFire/Geode 成员都会创建 oplog 文件,占用通过 max-oplog-size 属性,默认为 1GB。在常规执行期间,过时的操作 仅在压缩 期间从 oplogs 中删除,如 Design Your Disk Stores 中所述。

希望这对您有所帮助,干杯。

正如 Juan 提到的,压缩是 Geode 释放磁盘的方式 space。

您可以调整压缩以更快地释放磁盘 space,但会牺牲性能。您可以减小 max-oplog-size 并增加 compaction-threshold 以更快地回收磁盘 space。

对于大多数用例,我建议单独保留压缩阈值。默认值针对最大写入吞吐量和磁盘垃圾不超过 50% 进行了调整。