[
https://issues.apache.org/jira/browse/HBASE-8751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13897544#comment-13897544
]
Hudson commented on HBASE-8751:
-------------------------------
SUCCESS: Integrated in HBase-TRUNK #4907 (See
[https://builds.apache.org/job/HBase-TRUNK/4907/])
HBASE-8751 Enable peer cluster to choose/change the ColumnFamilies/Tables it
really want to replicate from a source cluster (Feng Honghua via JD)
(jdcryans: rev 1566944)
*
/hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.java
*
/hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeer.java
*
/hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeers.java
*
/hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java
*
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
*
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestPerTableCFReplication.java
* /hbase/trunk/hbase-shell/src/main/ruby/hbase/replication_admin.rb
* /hbase/trunk/hbase-shell/src/main/ruby/shell.rb
* /hbase/trunk/hbase-shell/src/main/ruby/shell/commands/add_peer.rb
* /hbase/trunk/hbase-shell/src/main/ruby/shell/commands/list_peers.rb
* /hbase/trunk/hbase-shell/src/main/ruby/shell/commands/set_peer_tableCFs.rb
* /hbase/trunk/hbase-shell/src/main/ruby/shell/commands/show_peer_tableCFs.rb
> Enable peer cluster to choose/change the ColumnFamilies/Tables it really want
> to replicate from a source cluster
> ----------------------------------------------------------------------------------------------------------------
>
> Key: HBASE-8751
> URL: https://issues.apache.org/jira/browse/HBASE-8751
> Project: HBase
> Issue Type: New Feature
> Components: Replication
> Reporter: Feng Honghua
> Assignee: Feng Honghua
> Fix For: 0.98.1, 0.99.0
>
> Attachments: HBASE-8751-0.94-V0.patch, HBASE-8751-0.94-v1.patch,
> HBASE-8751-trunk_v0.patch, HBASE-8751-trunk_v1.patch,
> HBASE-8751-trunk_v2.patch, HBASE-8751-trunk_v3.patch
>
>
> Consider scenarios (all cf are with replication-scope=1):
> 1) cluster S has 3 tables, table A has cfA,cfB, table B has cfX,cfY, table C
> has cf1,cf2.
> 2) cluster X wants to replicate table A : cfA, table B : cfX and table C from
> cluster S.
> 3) cluster Y wants to replicate table B : cfY, table C : cf2 from cluster S.
> Current replication implementation can't achieve this since it'll push the
> data of all the replicatable column-families from cluster S to all its peers,
> X/Y in this scenario.
> This improvement provides a fine-grained replication theme which enable peer
> cluster to choose the column-families/tables they really want from the source
> cluster:
> A). Set the table:cf-list for a peer when addPeer:
> hbase-shell> add_peer '3', "zk:1100:/hbase", "table1; table2:cf1,cf2;
> table3:cf2"
> B). View the table:cf-list config for a peer using show_peer_tableCFs:
> hbase-shell> show_peer_tableCFs "1"
> C). Change/set the table:cf-list for a peer using set_peer_tableCFs:
> hbase-shell> set_peer_tableCFs '2', "table1:cfX; table2:cf1; table3:cf1,cf2"
> In this theme, replication-scope=1 only means a column-family CAN be
> replicated to other clusters, but only the 'table:cf-list list' determines
> WHICH cf/table will actually be replicated to a specific peer.
> To provide back-compatibility, empty 'table:cf-list list' will replicate all
> replicatable cf/table. (this means we don't allow a peer which replicates
> nothing from a source cluster, we think it's reasonable: if replicating
> nothing why bother adding a peer?)
> This improvement addresses the exact problem raised by the first FAQ in
> "http://hbase.apache.org/replication.html":
> "GLOBAL means replicate? Any provision to replicate only to cluster X and
> not to cluster Y? or is that for later?
> Yes, this is for much later."
> I also noticed somebody mentioned "replication-scope" as integer rather than
> a boolean is for such fine-grained replication purpose, but I think extending
> "replication-scope" can't achieve the same replication granularity
> flexibility as providing above per-peer replication configurations.
> This improvement has been running smoothly in our production clusters
> (Xiaomi) for several months.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)