Enis Soztutar created HBASE-12561:
-------------------------------------

             Summary: Replicas of regions can be cached from different 
instances of the table in MetaCache
                 Key: HBASE-12561
                 URL: https://issues.apache.org/jira/browse/HBASE-12561
             Project: HBase
          Issue Type: Sub-task
            Reporter: Enis Soztutar
            Assignee: Enis Soztutar
             Fix For: 2.0.0


In testing, we have observed that if a client caches some regions with replicas 
in MetaCache, and then the table is recreated, the cache does not get 
invalidated. Upon caching more entries from a new instance of the table we can 
have entries for replicas from different instances of a table (remember that 
metacache is row based)

On async wal replay (HBASE-11568), we have an elaborate mechanism to track 
region replica locations and skip replaying wal entries if the current region 
replica is not the same region replica from the original wal edit. This 
prevents replaying entries of older tables with the same name to the region 
replicas as well as replaying older entries from split (or merged) regions from 
old parent to new daughters.
Trace level logging in my test setup showed that we were skipping some entries 
because of a case, where we would have region locations (of the same range) 
cached from different instances of the table (meaning some replicas are from 
already deleted table vs some entries from new table). This was causing 
superfluous skipping entries.

The fix can be when we are merging entries for the same range, we simply check 
the other entries and delete those that do not match the new region id.



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

Reply via email to