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)