You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by kzurek <kz...@proximetry.pl> on 2013/04/24 12:25:07 UTC

HBase - prioritizing writes over reads?

Is it possible to prioritize writes over reads in HBase? I'm facing some I/O
read related issues that influence my write clients and cluster in general
(constantly growing store files on some RS). Due to the fact that I cannot
let myself to loose/skip incoming data, I would like to guarantee that in
case of extensive read I will be able to limit incoming read requests, so
that write requests wont be influenced. Is it possible? If so what would be
the best way to that and where it should be placed - on the client or
cluster side)? 


 




--
View this message in context: http://apache-hbase.679495.n3.nabble.com/HBase-prioritizing-writes-over-reads-tp4042838.html
Sent from the HBase User mailing list archive at Nabble.com.

Re: HBase - prioritizing writes over reads?

Posted by Ted Yu <yu...@gmail.com>.
Can you give more details to the prioritization ?

I assume you were talking about user tables. 

Cheers

On May 7, 2013, at 11:58 PM, kzurek <kz...@proximetry.pl> wrote:

> Thanks for the help.
> 
> 
> 
> --
> View this message in context: http://apache-hbase.679495.n3.nabble.com/HBase-prioritizing-writes-over-reads-tp4042838p4043876.html
> Sent from the HBase User mailing list archive at Nabble.com.

Re: HBase - prioritizing writes over reads?

Posted by kzurek <kz...@proximetry.pl>.
Thanks for the help.



--
View this message in context: http://apache-hbase.679495.n3.nabble.com/HBase-prioritizing-writes-over-reads-tp4042838p4043876.html
Sent from the HBase User mailing list archive at Nabble.com.

Re: HBase - prioritizing writes over reads?

Posted by lars hofhansl <la...@apache.org>.
I would also add that if you need an "always available" store (as in you want A and P of CAP [1], and can sacrifice C),
you might be better served with one of the DynamoDB inspired architectures such as Riak or Cassandra. HBase choses C and P of CAP.


It might seem strange that as an HBase committer I would advise to look at some non-HBase technology, but I am a big fan of using the right tool for the right job.

-- Lars


1. See also http://en.wikipedia.org/wiki/CAP_theorem



________________________________
 From: Jean-Daniel Cryans <jd...@apache.org>
To: "user@hbase.apache.org" <us...@hbase.apache.org> 
Sent: Thursday, April 25, 2013 10:17 AM
Subject: Re: HBase - prioritizing writes over reads?
 

Short answer is no, there's no knob or configuration to do that.

Longer answer is it depends. Are the reads and writes going to different
regions/tables? If so, disable the balancer and take it in charge
by segregating the offending regions on their own RS.

I also see you have the requirement to take incoming data not matter what.
Well, this currently cannot be guaranteed in HBase since a RS failure will
incur some limited unavailability while the ZK session times out, the logs
are replayed and the regions are reassigned. I don't know what kind of SLA
you have but it sounds like even without your reads problem you need to do
something client-side to take care of this. Local buffers maybe? It would
work as long as you don't need to serve that new data right away (unless
you also start serving from the local buffer, but it's getting complicated).

Hope this helps,

J-D


On Wed, Apr 24, 2013 at 3:25 AM, kzurek <kz...@proximetry.pl> wrote:

> Is it possible to prioritize writes over reads in HBase? I'm facing some
> I/O
> read related issues that influence my write clients and cluster in general
> (constantly growing store files on some RS). Due to the fact that I cannot
> let myself to loose/skip incoming data, I would like to guarantee that in
> case of extensive read I will be able to limit incoming read requests, so
> that write requests wont be influenced. Is it possible? If so what would be
> the best way to that and where it should be placed - on the client or
> cluster side)?
>
>
>
>
>
>
>
> --
> View this message in context:
> http://apache-hbase.679495.n3.nabble.com/HBase-prioritizing-writes-over-reads-tp4042838.html
> Sent from the HBase User mailing list archive at Nabble.com.
>

Re: HBase - prioritizing writes over reads?

Posted by Jean-Daniel Cryans <jd...@apache.org>.
Short answer is no, there's no knob or configuration to do that.

Longer answer is it depends. Are the reads and writes going to different
regions/tables? If so, disable the balancer and take it in charge
by segregating the offending regions on their own RS.

I also see you have the requirement to take incoming data not matter what.
Well, this currently cannot be guaranteed in HBase since a RS failure will
incur some limited unavailability while the ZK session times out, the logs
are replayed and the regions are reassigned. I don't know what kind of SLA
you have but it sounds like even without your reads problem you need to do
something client-side to take care of this. Local buffers maybe? It would
work as long as you don't need to serve that new data right away (unless
you also start serving from the local buffer, but it's getting complicated).

Hope this helps,

J-D


On Wed, Apr 24, 2013 at 3:25 AM, kzurek <kz...@proximetry.pl> wrote:

> Is it possible to prioritize writes over reads in HBase? I'm facing some
> I/O
> read related issues that influence my write clients and cluster in general
> (constantly growing store files on some RS). Due to the fact that I cannot
> let myself to loose/skip incoming data, I would like to guarantee that in
> case of extensive read I will be able to limit incoming read requests, so
> that write requests wont be influenced. Is it possible? If so what would be
> the best way to that and where it should be placed - on the client or
> cluster side)?
>
>
>
>
>
>
>
> --
> View this message in context:
> http://apache-hbase.679495.n3.nabble.com/HBase-prioritizing-writes-over-reads-tp4042838.html
> Sent from the HBase User mailing list archive at Nabble.com.
>