hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bhupendra Kumar Jain (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-17460) enable_table_replication can not perform cyclic replication of a table
Date Tue, 14 Feb 2017 05:28:41 GMT

    [ https://issues.apache.org/jira/browse/HBASE-17460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15865086#comment-15865086

Bhupendra Kumar Jain commented on HBASE-17460:

This patch will have one incompatible behavior change for enable table replication API. 
As per the earlier behavior, If the replication is enabled , user executes the enable table
replication command again and If table descriptor matches , It will check the replication
scope for each column family and if any of the column family scope is not enabled, it will
enable it. otherwise it will do nothing and final result is success. But as per the patch,
it will throw exception if replication is already enabled.

I think, To handle the cyclic replication case, Only ignoring the replication scope from comparison
should be enough. No need to check to isReplicationEnabled for local cluster. 

> enable_table_replication can not perform cyclic replication of a table
> ----------------------------------------------------------------------
>                 Key: HBASE-17460
>                 URL: https://issues.apache.org/jira/browse/HBASE-17460
>             Project: HBase
>          Issue Type: Bug
>          Components: Replication
>            Reporter: NITIN VERMA
>            Assignee: NITIN VERMA
>              Labels: replication
>             Fix For: 2.0.0, 1.4.0
>         Attachments: 17460.branch-1.v3.txt, HBASE-17460.patch, HBASE-17460_v2.patch,
HBASE-17460_v3.patch, HBASE-17460_v4.patch
>   Original Estimate: 96h
>  Remaining Estimate: 96h
> The enable_table_replication operation is broken for cyclic replication of HBase table
as we compare all the properties of column families (including REPLICATION_SCOPE). 
> Below is exactly what happens:
> 1.  Running "enable_table_replication 'table1'  " opeartion on first cluster will set
the REPLICATION_SCOPE of all column families to peer id '1'. This will also create a table
on second cluster where REPLICATION_SCOPE is still set to peer id '0'.
> 2. Now when we run "enable_table_replication 'table1'" on second cluster, we compare
all the properties of table (including REPLICATION_SCOPE_, which obviously is different now.

> I am proposing a fix for this issue where we should avoid comparing REPLICATION_SCOPE
inside HColumnDescriotor::compareTo() method, especially when replication is not already enabled
on the desired table.
> I have made that change and it is working. I will submit the patch soon.

This message was sent by Atlassian JIRA

View raw message