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

HRegionInfo changes for adding replicaId and MetaEditor/MetaReader changes for region replicas

    XMLWordPrintableJSON

Details

    Description

      As per parent jira, the cleanest way to add region replicas we think is to actually create one more region per replica per primary region. So for example, if a table has 10 regions with replication = 3, the table would indeed be created with 30 regions. These regions will be handled and assigned individually for AM purposes.
      We can add replicaId to HRegionInfo to indicate the replicaId, and use this to differentiate different replicas of the same region. So, primary replica would have replicaId = 0, and the others will have replicaId > 0.

      These replicas will share the same regionId prefix, but differ in an appended replicaId. The primary will not contain the replicaId so that no changes would be needed for existing tables.

      In meta, the replica regions are kept in the same row as the primary ( so for above example, there will be 10 rows in meta). The servers for the replicas are kept in columns like "server+replicaId".

      Attachments

        1. hbase-10347_redo_v4.patch
          171 kB
          Enis Soztutar
        2. hbase-10347_redo_v5.patch
          200 kB
          Enis Soztutar
        3. hbase-10347_redo_v6.patch
          201 kB
          Enis Soztutar
        4. hbase-10347_redo_v7.patch
          201 kB
          Enis Soztutar
        5. hbase-10347_redo_v8.patch
          203 kB
          Enis Soztutar
        6. 0001-HBASE-10347-HRegionInfo-changes-for-adding-replicaId.patch
          201 kB
          Enis Soztutar

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: