I just checked on 1.2.1, using the "as JSON by File", then searching for the cached file (the hash). And yes, the hbase:meta blocks are in L2 once you enable it. So the missing setCacheDataInL1(true) for the metaTableDescriptor() method is causing this.
On Fri, Jul 15, 2016 at 2:08 AM, Ted Yu <[email protected]> wrote: > I looked at related code in branch-1. > HColumnDescriptor#isCacheDataInL1() uses default value of > HColumnDescriptor.DEFAULT_CACHE_DATA_IN_L1 which is false > > I think setCacheDataInL1(true) call is needed for meta HTableDescriptor > > On Thu, Jul 14, 2016 at 12:57 PM, Nick Dimiduk <[email protected]> wrote: > >> IIRC, the configuration handling and IoC of multi-level block cache changed >> significantly around 1.2. This was to facilitate an overhaul and overall >> improvement of how cache layers are built, defined, and configured. >> Structures may be quite different between master and various incarnations >> of 1.x branches. Please examine each independently, don't assume what holds >> on one branch applies to another. >> >> On Thu, Jul 14, 2016 at 12:35 PM, Ted Yu <[email protected]> wrote: >> >> > Interesting. >> > >> > Do you want to log a JIRA ? >> > >> > I checked HTableDescriptor.java in branch-1.1 to branch-1 where >> > setCacheDataInL1(true) is missing. >> > >> > The fix would be a one line change. >> > >> > On Thu, Jul 14, 2016 at 11:43 AM, Lars George <[email protected]> >> > wrote: >> > >> > > Ah wait, this was fixed in >> > > https://issues.apache.org/jira/browse/HBASE-15467, but is not right >> > > (if I read this proper) in the 1.x line. It could mean that hbase:meta >> > > is cached in L2 only. >> > > >> > > On Thu, Jul 14, 2016 at 7:37 PM, Ted Yu <[email protected]> wrote: >> > > > Looking at FSTableDescriptors#createMetaTableDescriptor() , both >> column >> > > > families have the following: >> > > > >> > > > .setCacheDataInL1(true), >> > > > >> > > > Is there something else you were looking for ? >> > > > >> > > > Cheers >> > > > >> > > > On Thu, Jul 14, 2016 at 6:59 AM, Lars George <[email protected]> >> > > wrote: >> > > > >> > > >> Hey, >> > > >> >> > > >> HBASE-11364 did add `.setCacheDataInL1(true)`, but the later change >> to >> > > >> use `HTableDescriptor.metaTableDescriptor()` changes the layout of >> the >> > > >> `hbase:meta` to omit the L1 cache setting. Is this on purpose or an >> > > >> oversight? >> > > >> >> > > >> In other words, are the meta blocks currently never cached in L1? >> > > >> >> > > >> Lars >> > > >> >> > > >> > >>
