Arjen Roodselaar created HBASE-10291:
----------------------------------------
Summary: Schema aware L2 BucketCache metrics
Key: HBASE-10291
URL: https://issues.apache.org/jira/browse/HBASE-10291
Project: HBase
Issue Type: New Feature
Components: regionserver
Affects Versions: 0.89-fb
Reporter: Arjen Roodselaar
Assignee: Arjen Roodselaar
Priority: Minor
Fix For: 0.89-fb
This patch adds per-column family L2 cache metrics. In order to make this
happen the following needed to change:
The L2 cache deals with raw block data. However, in order to keep the size
metrics for different CF's and block types valid the cache needs to know about
the block type. In the BlockCache this is achieved by making the HFileBlock
implement SchemaAware and augment the HFileBlock with the appropriate data
before adding it to the cache. In order to do the same for the L2 cache
RawHFileBlock were added, and the BucketEntry was made to implement SchemaAware.
This led to an interesting problem, as the L2 cache is possibly used by readers
and writers who do not have the SchemaAware data. In order to work around this
a lightweight facade wrapping CacheConfig and the L2 cache can be instantiated
and passed down instead of the actual L2 cache object. This L2CacheAgent is
SchemaAware and can add the schema data to the RawHFileBlock's before handing
them over to the cache. I feel the L2CacheAgent is still a work in progress as
it could potentially centralize the cache policy and allow all cache decisions
to be removed from HFile- and block readers and writers.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)