[ 
https://issues.apache.org/jira/browse/HBASE-17931?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Phil Yang updated HBASE-17931:
------------------------------
    Release Note: 
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.

  was:
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 upgrade master first and then upgrade region servers. The 
new master will handle system tables correctly.


> Assign system tables to servers with highest version
> ----------------------------------------------------
>
>                 Key: HBASE-17931
>                 URL: https://issues.apache.org/jira/browse/HBASE-17931
>             Project: HBase
>          Issue Type: Bug
>          Components: Region Assignment, scan
>            Reporter: Phil Yang
>            Assignee: Phil Yang
>            Priority: Blocker
>             Fix For: 2.0.0, 1.4.0
>
>         Attachments: HBASE-17931.branch-1.v01.patch, 
> HBASE-17931.branch-1.v02.patch, HBASE-17931.branch-1.v03.patch, 
> HBASE-17931.branch-1.v04.patch, HBASE-17931.branch-1.v04.patch, 
> HBASE-17931.branch-1.v05.patch, HBASE-17931.branch-1.v05.patch, 
> HBASE-17931.branch-1.v06.patch, HBASE-17931.v01.patch, HBASE-17931.v02.patch, 
> HBASE-17931.v03.patch, HBASE-17931.v04.patch, HBASE-17931.v04.patch, 
> HBASE-17931.v05.patch
>
>
> 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?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to