You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Dan Smith (JIRA)" <ji...@apache.org> on 2015/10/26 23:54:27 UTC

[jira] [Created] (GEODE-498) Callback argument size is not reflected in bucket size for parallel queues

Dan Smith created GEODE-498:
-------------------------------

             Summary: Callback argument size is not reflected in bucket size for parallel queues
                 Key: GEODE-498
                 URL: https://issues.apache.org/jira/browse/GEODE-498
             Project: Geode
          Issue Type: Bug
            Reporter: Dan Smith


I found this while tracking down GEODE-244.  This appears to be a new problem that was introduced by the off heap changes. This is problematic because this size is used for rebalancing calculations, so bugs in the reported size could cause rebalancing issues.

The issue is that the size reported by BucketRegion.getTotalBytes() is incorrect for parallel async event queues. The size does not include the size of the callback argument.

I tracked this down to this code in BucketRegion.calcMemSize, which looks like it was added for offheap:

{code}
static int calcMemSize(Object value) {
    if (value != null && (value instanceof GatewaySenderEventImpl)) {
      return ((GatewaySenderEventImpl)value).getSerializedValueSize();
    }
...
}
{code}

Interestingly, it looks like for the purposes of eviction, we do include the callback argument size, because the MemLRUCapacityController calls GatewaySenderEventImpl.getSizeInBytes



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