在使用Apache Geode / Gemfire实现时,我的要求是不仅要具有IMDG功能,还要将值提交到磁盘存储。如果我的所有Geode服务器都关闭了,我想把它们带回来并有一个持久性键值。
现在,当我从缓存中删除密钥时,密钥和值将从所有集群缓存中删除(或者说我使用destroy模式进行驱逐操作)。但是,磁盘空间不会被回收或减少;所以,如果我继续对区域使用persistence_overflow,我应该如何清理磁盘空间以容纳新条目?
再次,我明白有紧凑的选项,但是,我不是在寻找压缩,我想完全删除键/值对并回收磁盘空间?
据我所知,这在当前实现下是不可配置的:每个使用GemFire/Geode
配置的disk-store
成员都会创建oplog
文件,该文件占用通过max-oplog-size
属性配置的任何内容,默认为1GB
。在常规执行期间,仅在压缩过程中从oplogs
中删除过时操作,如Design Your Disk Stores中所述。
希望这会有所帮助,欢呼。
正如Juan所说,压缩是Geode释放磁盘空间的方式。
您可以调整压缩以更快地释放磁盘空间,但会牺牲性能。您可以减小max-oplog-size并增加compaction-threshold以更快地回收磁盘空间。
对于大多数用例,我建议单独保留压缩阈值。调整默认值以获得最大写入吞吐量,并且磁盘上的垃圾不超过50%。