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

Guanghao Zhang updated HBASE-16653:
-----------------------------------
    Release Note: 
During HBASE-11393, we have done two things:
1.  unify tableCFs with peerConfig
2.  Fix ns not support issue for replication. 

This issue is to backport it to branch-1

How to rolling update if the replication peer have old table-cfs string config? 
Due to we modify proto object of ReplicationPeerConfig (add tableCFs field), so 
when we do rolling update, we have to update original ReplicationPeerConfig 
data on ZK firstly.
1. Make sure the master have the permission to modify replication peer znode.
2. Disable the replication peer.
3. Rolling update master first. The master will copy the table-cfs config from 
old table-cfs znode and add it to the new proto object of ReplicationPeerConfig.
4. Rolling update regionservers.
5. Enable the replication peer.

If you can't change the replication peer znode permission, you can use the 
TableCFsUpdater tool to copy the table-cfs config.
1. Disable the replication peer.
2. bin/hbase org.apache.hadoop.hbase.replication.master.TableCFsUpdater update
3. Rolling update master and regionservers.
4. Enable the replication peer.

Notes:
We have to wait for the rolling update completed if we want change one 
replication peer's table-cfs config.
The old client can change the table-cfs znode directly by append_peer_tableCFs 
or remove_peer_tableCFs. Because the new server will read table-cfs config from 
replication peer znode. So it doesn't change the  replication behavior.
The old client can't change the replication peer znode directly if the peer has 
table-cfs config. Because the old client will wirte a new PB object without 
table-cfs field to zk directly. Then the new server can't read table-cfs 
config, the replication behavior will be wrong.


  was:
During HBASE-11393, we have done two things:
1.  unify tableCFs with peerConfig
2.  Fix ns not support issue for replication. 

This issue is to backport it to branch-1

How to rolling update if the replication peer have old table-cfs string config? 
Due to we modify proto object of ReplicationPeerConfig (add tableCFs field), so 
when we do rolling update, we have to update original ReplicationPeerConfig 
data on ZK firstly.
1. Make sure the master have the permission to modify replication peer znode.
2. Disable the replication peer.
3. Rolling update master first. The master will copy the table-cfs config from 
old table-cfs znode and add it to the new proto object of ReplicationPeerConfig.
4. Rolling update regionservers.
5. Enable the replication peer.

If you can't change the replication peer znode permission, you can use the 
TableCFsUpdater tool to copy the table-cfs config.
1. Disable the replication peer.
2. bin/hbase org.apache.hadoop.hbase.replication.master.TableCFsUpdater update
3. Rolling update master and regionservers.
4. Enable the replication peer.

Notes:
We have to wait for the rolling update completed if we want change one 
replication peer's table-cfs config.
The old client change the table-cfs znode directly not the replication peer 
znode. And the new server will read table-cfs config from replication peer 
znode. So it is ok for old client to change the old table-cfs znode directly 
but it will not work.
 



> Backport HBASE-11393 to all branches which support namespace
> ------------------------------------------------------------
>
>                 Key: HBASE-16653
>                 URL: https://issues.apache.org/jira/browse/HBASE-16653
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.0.4, 1.4.0, 1.3.1, 0.98.22, 1.1.7, 1.2.4
>            Reporter: Guanghao Zhang
>            Assignee: Guanghao Zhang
>             Fix For: 1.4.0
>
>         Attachments: HBASE-16653-branch-1-v1.patch, 
> HBASE-16653-branch-1-v2.patch, HBASE-16653-branch-1-v3.patch, 
> HBASE-16653-branch-1-v4.patch, HBASE-16653-branch-1-v4.patch, 
> HBASE-16653-branch-1-v5.patch
>
>
> As HBASE-11386 mentioned, the parse code about replication table-cfs config 
> will be wrong when table name contains namespace and we can only config the 
> default namespace's tables in the peer. It is a bug for all branches which 
> support namespace. HBASE-11393 resolved this by use a pb object but it was 
> only merged to master branch. Other branches still have this problem. I 
> thought we should fix this bug in all branches which support namespace.



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

Reply via email to