[ https://issues.apache.org/jira/browse/HBASE-15361?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Anoop Sam John resolved HBASE-15361. ------------------------------------ Resolution: Duplicate > 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)