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)