A put operation HBase may need to write data to multiple stores. [Depends on presence of KVs belonging to different CFs in the Put]
A put can be considered as committed when it has successfully done the write to all the corresponding stores [In turn into the Memstores of those stores]
In case of a READ_UNCOMMITTED level, there can be situation of partial row read. At the time of read the write was completed in one store but not in another.
The read committed level makes sure this will not happen using the MVCC.
From: Michael Segel [[EMAIL PROTECTED]]
Sent: Monday, June 18, 2012 5:16 PM
To: [EMAIL PROTECTED]
Subject: Re: Isolation level
Since you don't have OLTP, the terms need to be better defined.
What is meant by an uncommitted_ write in HBase?
RLL in RDBMS is different than RLL in HBase. You don't have the concept of a transaction in HBase.
On Jun 17, 2012, at 10:32 PM, Anoop Sam John wrote:
> You can check Scan#setIsolationLevel() API for changing the level. By default it is read committed means read only committed writes.
> From: Jerry Lam [[EMAIL PROTECTED]]
> Sent: Friday, June 15, 2012 9:51 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Isolation level
> Hi Cristina:
> My understanding of HBase is that the isolation level fro read ops is Read
> Committed. There is only write lock which could protect the data from
> modifying by other requests but there is no read-lock (it is there but it
> doesn't have any effect). Since put ops are atomic, it can succeed or fail
> but not in the middle so clients can only read the data if the write ops
> On Fri, Jun 15, 2012 at 7:59 AM, Cristina <[EMAIL PROTECTED]> wrote:
>> I have read that Hbase has read committed as isolation level, but I have
>> Is it possible to chage this level, for instance to read uncommitted? How
>> I do this?
>> Another question, Is this isolation level based on locks? I have doubts
>> Hbase has multiversion concurrency control so it may implement read
>> snapshot or snapshot isolation.