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

Gabriel Reid commented on HBASE-10504:
--------------------------------------

[~enis] [~jdcryans] I think that this would make a great addition to HBase in 
general -- if I'm reading it correctly, it basically works out as a kind of 
RegionObserver.postPut that runs in process, but off of the write path. 
However, I'm less sure of how well this general approach would work for 
hbase-indexer.

Although this approach would simplify a lot of things (e.g.removing the need to 
to act as a slave cluster), it also introduces a number of important changes in 
the execution model of something that runs via the SepConsumer (i.e. reacting 
to HBase updates)
* the number of replication endpoints becomes directly linked to the number of 
regionservers -- as far as I see, it would no longer be possible to have more 
or fewer replication endpoints than regionservers
* the replication (ReplicationConsumer) runs within the same JVM as the 
regionserver, which brings some important changes: all of the dependencies then 
need to be present in the classpath of the regionserver (and compatible with 
the dependencies of the regionserver), it has an effect on the heap, is no 
longer possible to tune the JVM settings for the replication process on its own
* from what I see of the current patch (although I'm sure this could be 
changed) is that it looks like there's only a single ReplicationConsumer, 
meaning that it wouldn't be possible to have "real" replication running next to 
a custom ReplicationSource

The tighter-coupling issues that I outlined above could be worked around by 
having a lightweight ReplicationConsumer that just passes data to an external 
process via RPC, but that's basically exactly what the replication code in 
HBase is doing right now, so it would be a shame to re-implement something like 
that.

> Define Replication Interface
> ----------------------------
>
>                 Key: HBASE-10504
>                 URL: https://issues.apache.org/jira/browse/HBASE-10504
>             Project: HBase
>          Issue Type: Task
>            Reporter: stack
>            Assignee: stack
>            Priority: Blocker
>             Fix For: 0.99.0
>
>         Attachments: hbase-10504_wip1.patch
>
>
> HBase has replication.  Fellas have been hijacking the replication apis to do 
> all kinds of perverse stuff like indexing hbase content (hbase-indexer 
> https://github.com/NGDATA/hbase-indexer) and our [~toffer] just showed up w/ 
> overrides that replicate via an alternate channel (over a secure thrift 
> channel between dcs over on HBASE-9360).  This issue is about surfacing these 
> APIs as public with guarantees to downstreamers similar to those we have on 
> our public client-facing APIs (and so we don't break them for downstreamers).
> Any input [~phunt] or [~gabriel.reid] or [~toffer]?
> Thanks.
>  



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to