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

Enis Soztutar commented on HBASE-17460:
---------------------------------------

In {{compareForReplication}}, you are changing the passed HTD/HCD, effectively 
introducing side affects to an otherwise read-only method. 
We already have setScope() and getScope(), please use those. They should have 
been named set/getReplicationScope, but that is another issue. 

Can you please instead do something like this: 
 - In RepAdmin, close the HTD as you do. Iterate over the HCDs from source, and 
set the scope by calling HCD.setScope() from the other. 
 - Then call regular HTD.compare() without any need for introducing custom 
methods in HTD / HCD. 

Is the indentation correct? It makes hard to read the patch, and we cannot 
commit without fixed indentation. We use 2 spaces, and no tabs. 

> 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
>         Attachments: HBASE-17460.patch, HBASE-17460_v2.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
(v6.3.4#6332)

Reply via email to