private Map<Integer, SizeEntry> getSizeRemotely(Set targetNodes, boolean estimate) {
    SizeResponse r = SizeMessage.send(targetNodes, this, null, estimate);
    prStats.incPartitionMessagesSent();
    Map retVal = null;
    try {
      retVal = r.waitBucketSizes();
    } catch (CacheException e) {
      checkReadiness();
      throw e;
    }
    return retVal;
  }
This method gets a PartitionServerSocketConnection to targetNode and sends size request to the
node. It returns size of all the buckets "primarily" hosted on that node. Here "primarily"
means that for a given bucketID that node comes first in the node list. This selective counting
ensures that redundant bucket size is added only once.

@return the size of all the buckets hosted on the target node.
geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java