Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-10070 HBase read high-availability using timeline-consistent region replicas
  3. HBASE-12561

Replicas of regions can be cached from different instances of the table in MetaCache

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.1.0, 2.0.0
    • None
    • None
    • Reviewed

    Description

      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.

      Attachments

        1. hbase-12561-v1.patch
          13 kB
          Enis Soztutar

        Activity

          People

            enis Enis Soztutar
            enis Enis Soztutar
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: