diskspacegeodespring-boot-data-geode

Disk clean up in Apache geode


I have set up apache geode for caching.

Cluster Configuration:
Locator: 1GB      - Mounted volume 2GB
Server2: 1GB      - Mounted volume 2GB
Server2: 1GB      - Mounted volume 2GB

Region configuration in cache.xml

<region name="answerCache">
    <region-attributes data-policy="PARTITION_PERSISTENT_OVERFLOW">
        <eviction-attributes>
            <lru-heap-percentage action="overflow-to-disk" />
        </eviction-attributes>
    </region-attributes>
</region>

Geode pushes the data to disk (based on LRU) when region fills with data. But I'm not getting any configuration where geode lets me delete entry from disk if its getting filled. I'm getting Out of memory error if disk gets full.

I want to apply LRU on disk writes as well so that least used entries can be deleted from disk.


Solution

  • I don't think there's a feature like this embedded within Apache Geode at the moment and, according to how I see it, it wouldn't make much sense to add it either way. The overflow feature basically limits the region size in memory by moving the values of least recently used (LRU) entries to disk (values only), the keys are kept in memory with a "pointer" to the actual entry on disk so they can be recovered whenever needed.

    If you want to remove entries from the disk-store, you first need to delete them from the actual Region on memory (Region.destroy, Region.remove, etc.), Apache Geode will handle the deletion process and remove the entry from disk as well, automatically.

    Cheers.