geode-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Darrel Schneider (JIRA)" <>
Subject [jira] [Created] (GEODE-1273) IndexManager.populateIndexes does extra work for off-heap and compression
Date Fri, 22 Apr 2016 00:14:12 GMT
Darrel Schneider created GEODE-1273:

             Summary: IndexManager.populateIndexes does extra work for off-heap and compression
                 Key: GEODE-1273
             Project: Geode
          Issue Type: Bug
          Components: offheap
            Reporter: Darrel Schneider

IndexManager.populateIndexes call entry.getValue on every entry in a region.
It does this to make sure that entry is faulted in from disk before adding the region to multiple
indexes. Here is the reason it gives for doing this:
        // Fault in the value once before index update so that every index
        // update does not have to read the value from disk every time.

But if the region is offheap then calling getValue does fault it in but also copies it to
the heap as a VMCachedDeserializable or byte array. But this code never uses the result of
getValue (it is just called for the side effect of faulting it in).
In the case of a compressed region getValue also has to decompress the value and deserialize

So the code does a bunch of work for offheap and compression that is not needed.

Instead of calling RegionEntry.getValue we need a call on RegionEntry that just does the fault

This message was sent by Atlassian JIRA

View raw message