hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "deepankar (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-15361) Remove unnecessary or Document constraints on BucketCache possible bucket sizes
Date Mon, 29 Feb 2016 22:05:18 GMT
deepankar created HBASE-15361:
---------------------------------

             Summary: Remove unnecessary or Document  constraints on BucketCache possible
bucket sizes
                 Key: HBASE-15361
                 URL: https://issues.apache.org/jira/browse/HBASE-15361
             Project: HBase
          Issue Type: Sub-task
          Components: BucketCache
            Reporter: deepankar
            Priority: Minor


When we were trying to tune the bucket sizes {{hbase.bucketcache.bucket.sizes}} according
to our workload, we encountered an issue due to the way offset is stored in the bucket entry.
We divide the offset into integer base and byte value and it assumes that all bucket offsets
 will be a multiple of 256 (left shifting by 8). See the code below
{code}

    long offset() { // Java has no unsigned numbers
      long o = ((long) offsetBase) & 0xFFFFFFFF;
      o += (((long) (offset1)) & 0xFF) << 32;
      return o << 8;
    }

    private void setOffset(long value) {
      assert (value & 0xFF) == 0;
      value >>= 8;
      offsetBase = (int) value;
      offset1 = (byte) (value >> 32);
    }
{code}

This was there to save 3 bytes per BucketEntry instead of using long and when there are no
other fields in the Bucket Entry, but now there are lot of fields in the bucket entry , This
not documented so we could either document the constraint that it should be a strict 256 bytes
multiple of just go away with this constraint.  




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

Mime
View raw message