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

Assign system tables to servers with highest version

    XMLWordPrintableJSON

Details

    • Reviewed
    • 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.branch-1.v01.patch
          19 kB
          Phil Yang
        2. HBASE-17931.branch-1.v02.patch
          18 kB
          Phil Yang
        3. HBASE-17931.branch-1.v03.patch
          19 kB
          Phil Yang
        4. HBASE-17931.branch-1.v04.patch
          20 kB
          Phil Yang
        5. HBASE-17931.branch-1.v04.patch
          20 kB
          Phil Yang
        6. HBASE-17931.branch-1.v05.patch
          22 kB
          Phil Yang
        7. HBASE-17931.branch-1.v05.patch
          22 kB
          Phil Yang
        8. HBASE-17931.branch-1.v06.patch
          25 kB
          Phil Yang
        9. HBASE-17931.v01.patch
          17 kB
          Phil Yang
        10. HBASE-17931.v02.patch
          17 kB
          Phil Yang
        11. HBASE-17931.v03.patch
          18 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

              yangzhe1991 Phil Yang
              yangzhe1991 Phil Yang
              Votes:
              0 Vote for this issue
              Watchers:
              12 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: