Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-17931

Assign system tables to servers with highest version

    Details

    • Hadoop Flags:
      Reviewed
    • Release Note:
      Hide
      We usually keep compatibility between old client and new server so we can do rolling upgrade, HBase cluster first, then HBase client. But we don't guarantee new client can access old server.
      In an HBase cluster, we have system tables and region servers will access these tables so for servers they are also an HBase client. So if the system tables are in region servers with lower version we may get trouble because region servers with higher version may can not access them.
      After this patch, we will move all system regions to region servers with highest version. So when we do a rolling upgrade across two major or minor versions, we should ALWAYS UPGRADE MASTER FIRST and then upgrade region servers. The new master will handle system tables correctly.
      Show
      We usually keep compatibility between old client and new server so we can do rolling upgrade, HBase cluster first, then HBase client. But we don't guarantee new client can access old server. In an HBase cluster, we have system tables and region servers will access these tables so for servers they are also an HBase client. So if the system tables are in region servers with lower version we may get trouble because region servers with higher version may can not access them. After this patch, we will move all system regions to region servers with highest version. So when we do a rolling upgrade across two major or minor versions, we should ALWAYS UPGRADE MASTER FIRST and then upgrade region servers. The new master will handle system tables correctly.

      Description

      In branch-1 and master we have some improvement and new features on scanning which is not compatible.

      A client of old version to a server of new version is compatible (must be a bug if not, maybe need some test?).
      A client of new version may not be able to read from a server of old version correctly (because of scan limit, moreResults flag, etc), which is ok for major/minor upgrade and we can tell users to upgrade server before upgrading client. But RS also use scan to read meta. If meta table is in RS of old version, all RSs of new version may have trouble while scanning meta table.

      So we should make sure meta table always in servers of new version. Force meta table in Master and upgrade Master first, or assign meta table in region servers with latest version?

        Attachments

        1. HBASE-17931.v01.patch
          17 kB
          Phil Yang
        2. HBASE-17931.v02.patch
          17 kB
          Phil Yang
        3. HBASE-17931.v03.patch
          18 kB
          Phil Yang
        4. HBASE-17931.branch-1.v01.patch
          19 kB
          Phil Yang
        5. HBASE-17931.branch-1.v02.patch
          18 kB
          Phil Yang
        6. HBASE-17931.branch-1.v03.patch
          19 kB
          Phil Yang
        7. HBASE-17931.branch-1.v04.patch
          20 kB
          Phil Yang
        8. HBASE-17931.branch-1.v04.patch
          20 kB
          Phil Yang
        9. HBASE-17931.branch-1.v05.patch
          22 kB
          Phil Yang
        10. HBASE-17931.branch-1.v05.patch
          22 kB
          Phil Yang
        11. HBASE-17931.branch-1.v06.patch
          25 kB
          Phil Yang
        12. HBASE-17931.v04.patch
          18 kB
          Phil Yang
        13. HBASE-17931.v04.patch
          18 kB
          Phil Yang
        14. HBASE-17931.v05.patch
          18 kB
          Phil Yang

          Issue Links

            Activity

              People

              • Assignee:
                yangzhe1991 Phil Yang
                Reporter:
                yangzhe1991 Phil Yang
              • Votes:
                0 Vote for this issue
                Watchers:
                11 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: