Dan Smith created GEODE-56:
------------------------------

             Summary: Put to partitioned region with overflow doesn't properly 
update numOverflowBytesOnDisk
                 Key: GEODE-56
                 URL: https://issues.apache.org/jira/browse/GEODE-56
             Project: Geode
          Issue Type: Bug
          Components: core
            Reporter: Dan Smith
            Assignee: Dan Smith


For the purposes of rebalancing, geode keeps track of the amount of data stored 
on disk in a counter - BucketRegion.numOverflowBytesOnDisk. 

For regions that have overflow but not persistence, a put that replaces a value 
that was overflowed on disk does not correctly decrement the counter of bytes 
overflowed to disk.

The issue is that that size of the entry on disk is read in an if block testing 
to see if the region is persistent (dr.isBackup())
{code}
          if (dr.isBackup()) {
            dr.testIsRecoveredAndClear(did); // fixes bug 41409
            oldValueLength = getValueLength(did);
{code}

Later it is used to change the stat, but it oldValueLength may not be set

{code}
              incrementBucketStats(region, 1/*InVM*/, -1/*OnDisk*/, 
-oldValueLength);
{code}

The net effect of this issue is that if a lot of puts happen to entries that 
are overflowed to disk, the size of the bucket will be inflated. This may then 
cause issues with rebalancing calculations.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to