So if I understand your goal, you want a client who can connect to one or more 
hbase clusters at the same time… 

Ok, so lets walk through the use case and help me understand a couple of use 
cases for this… 

Why not simply manage each connection/context via a threaded child? 



> On Jun 29, 2015, at 1:48 PM, Ted Malaska <[email protected]> wrote:
> 
> Hey Dev List,
> 
> 
> My name is Ted Malaska, long time lover and user of HBase. I would like to
> discuss adding in a multi-cluster client into HBase. Here is the link for
> the design doc (
> https://github.com/tmalaska/HBase.MCC/blob/master/MultiHBaseClientDesignDoc.docx%20(1).docx)
> but I have pulled some parts into this main e-mail to give you a high level
> understanding of it's scope.
> 
> 
> *Goals*
> 
> The proposed solution is a multi-cluster HBase client that relies on the
> existing HBase Replication functionality to provide an eventual consistent
> solution in cases of primary cluster down time.
> 
> 
> https://github.com/tmalaska/HBase.MCC/blob/master/FailoverImage.png
> 
> 
> Additional goals are:
> 
>   -
> 
>   Be able to switch between single HBase clusters to Multi-HBase Client
>   with limited or no code changes.  This means using the HConnectionManager,
>   Connection, and Table interfaces to hide complexities from the developer
>   (Connection and Table are the new classes for HConnection, and
>   HTableInterface in HBase version 0.99).
>   -
> 
>   Offer thresholds to allow developers to decide between degrees of
>   strongly consistent and eventually consistent.
>   - Support N number of linked HBase Clusters
> 
> 
> *Read-Replicas*
> Also note this is in alinement with Read-Replicas and can work with that.
> This client is multi-cluster where Read-Replicas help us to be multi Region
> Server.
> 
> *Replication*
> You will also see in the document that this works with current replication
> and requires no changes to it.
> 
> *Only a Client change*
> You will also see in the doc this is only a new client. Which means no
> extra code for the end developer, only addition configs to set it up.
> 
> *Github*
> This is a github project that shows that this works at:
> https://github.com/tmalaska/HBase.MCC
> Note this is only a prototype. When adding it to HBase we will use it as a
> starting point but there will be changes.
> 
> *Initial Results:*
> 
> Red is where our primary cluster has failed and you will see from the
> bottom to graphs that our puts, deletes, and gets are not interrupted.
> https://github.com/tmalaska/HBase.MCC/blob/master/AveragePutTimeWithMultiRestartsAndShutDowns.png
> 
> Thanks
> Ted Malaska

The opinions expressed here are mine, while they may reflect a cognitive 
thought, that is purely accidental. 
Use at your own risk. 
Michael Segel
michael_segel (AT) hotmail.com





Reply via email to