NNever,

Thanks so much for your answers!


On Fri, Apr 13, 2012 at 10:50 AM, NNever <nnever...@gmail.com> wrote:

> 1. A pre-row lock is here during the update, so other clients will block
> whild on client performs an update.(see HRegion.put 's annotaion), no
> exception.
> In the client side, while a process is updating, it may not reach the
> buffersize so the other process may read the original value, I think.
>
> 2. What kind of inconsistency? different value on the same row's
> qualifier?
>

The inconsistency means for the same retrieval, such as a scan, different
values are got in different threads for the multiple instances of a HTable
in them, respectively. Is it possible?

In my case, the little bit inconsistency is not so critical. So I will not
worry about the thread-safety issue. It must be fine?



>
> 3.I don't know the truely realize in code. There Is caching, but
> everytime you call methods like Htable.get, it still need connect to server
> to retrieve data——so, not as fast as in memory, isn't it?
>

I plan to design a read-only mechanism except when a periodically-updatinge
in with HBase for my system to raise the performance. Locking must affect
the performance. If caching is not fast enough in HBase, the design might
not be good?

Thanks again!

Best,
Bing


>
> Best regards,
> nn
>
> 2012/4/13 Bing Li <lbl...@gmail.com>
>
>> Dear Iars,
>>
>> Thanks so much for your reply!
>>
>> In my case, I need to overwrite or update a HTable. If reading during the
>> process of updating or overwriting, any exceptions will be thrown by
>> HBase?
>>
>> If multiple instances for a HTable are used by multiple threads, there
>> must
>> be inconsistency among them, right?
>>
>> I guess caching must be done in HBase. So retrieving in HTable must be
>> almost as fast as in memory?
>>
>> Best regards,
>> Bing
>>
>> On Fri, Apr 13, 2012 at 6:17 AM, lars hofhansl <lhofha...@yahoo.com>
>> wrote:
>>
>> > Hi Bing,
>> >
>> > Which part? The server certainly is thread safe.
>> > The client is not, at least not all the way through.
>> >
>> > The main consideration is HTable, which is not thread safe, you need to
>> > create one instance for each thread
>> > (HBASE-4805 makes that much cheaper), store the HTable in a ThreadLocal
>> > after creation, or use HTablePool.
>> >
>> > Please let me know if that answers your question.
>> >
>> > Thanks.
>> >
>> > -- Lars
>> >
>> >
>> > ----- Original Message -----
>> > From: Bing Li <lbl...@gmail.com>
>> > To: hbase-u...@hadoop.apache.org; user <user@hbase.apache.org>
>> > Cc:
>> > Sent: Thursday, April 12, 2012 3:10 PM
>> > Subject: Is HBase Thread-Safety?
>> >
>> > Dear all,
>> >
>> > Is HBase thread-safety? Do I need to consider the consistency issue when
>> > manipulating HBase?
>> >
>> > Thanks so much!
>> >
>> > Best regards,
>> > Bing
>> >
>> >
>>
>
>

Reply via email to