geode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <>
Subject [jira] [Commented] (GEODE-2097) Offheap persistent heapLRU regions can run out of offheap memory during recovery
Date Fri, 14 Apr 2017 18:00:43 GMT


ASF subversion and git services commented on GEODE-2097:

Commit 5c5c947978e8683f39dd9cae24fda4f6cd87f3e8 in geode's branch refs/heads/develop from
[;h=5c5c947 ]

GEODE-2097: check offheap limit during recovery

During disk recovery of offheap data,
the offheap LRU eviction limit is now checked
instead of the heap limit.

A new integration test has been added that would
run out of offheap memory during recovery without
this fix.

This fix also includes some refactoring of the
resource manager memory monitors into a new common
interface named MemoryMonitor.

> Offheap persistent heapLRU regions can run out of offheap memory during recovery
> --------------------------------------------------------------------------------
>                 Key: GEODE-2097
>                 URL:
>             Project: Geode
>          Issue Type: Bug
>          Components: offheap
>            Reporter: Darrel Schneider
>            Assignee: Darrel Schneider
> When the data for a persistent region is being recovered from the disk store the lru
limit is constantly checked. If the lru limit is exceeded then value recovery will cease.
But for off-heap regions this lru limit should be checking how much off-heap memory has been
> During recovery the amount of heap memory is being checked for an offheap regions. So
we can end up recovering too many values to off-heap and running out of off-heap memory during
> The code that causes this problem is: org.apache.geode.internal.cache.lru.HeapLRUCapacityController.createLRUHelper().new
AbstractEnableLRU() {...}.mustEvict(LRUStatistics, Region, int)
> During off-heap disk store recovery the Region parameter passed to this method is "null".
This causes the following heap check to be done:        
>        if (region == null) {
>           return resourceManager.getHeapMonitor().getState().isEviction();
>         }

This message was sent by Atlassian JIRA

View raw message