Description
in current master LruBlockCache, CACHE_FIXED_OVERHEAD is calculated as this:
public final static long CACHE_FIXED_OVERHEAD = ClassSize.align( (3 * Bytes.SIZEOF_LONG) + (10 * ClassSize.REFERENCE) + (5 * Bytes.SIZEOF_FLOAT) + (2 * Bytes.SIZEOF_BOOLEAN) + ClassSize.OBJECT);
after some investigation. I think there are some wrong here, class LruBlockCache, except static varible(which is belongs to class), there are 4 long varibles(maxBlockSize,maxSize,blockSize and overhead), 9 reference varibles and 2 boolean varibles, so the above code will not calculate LruBlockCache instance size correctly.
current related ut not failed mostly due to the result is 8 bytes aligned.
Attachments
Attachments
Issue Links
- Blocked
-
HBASE-16287 LruBlockCache size should not exceed acceptableSize too many
- Resolved
- is broken by
-
HBASE-14793 Allow limiting size of block into L1 block cache.
- Resolved