You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Cristina <cr...@hotmail.com> on 2012/06/15 13:59:52 UTC

Isolation level

Hi,

I have read that Hbase has read committed as isolation level, but I have some
doubts.
Is it possible to chage this level, for instance to read uncommitted? How could
I do this?
Another question, Is this isolation level based on locks? I have doubts because
Hbase has multiversion concurrency control so it may implement read committed
snapshot or snapshot isolation. 

Thanks,
    Cristina


Re: Isolation level

Posted by Cristina <cr...@hotmail.com>.
Thanks everyone for your useful answers.

Cristina




RE: Isolation level

Posted by Anoop Sam John <an...@huawei.com>.
Hi

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.


-Anoop-
________________________________________
From: Michael Segel [michael_segel@hotmail.com]
Sent: Monday, June 18, 2012 5:16 PM
To: user@hbase.apache.org
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.

-Mike



On Jun 17, 2012, at 10:32 PM, Anoop Sam John wrote:

> Hi
>           You can check Scan#setIsolationLevel() API for changing the level. By default it is  read committed means read only committed writes.
>
> -Anoop-
> ________________________________________
> From: Jerry Lam [chilinglam@gmail.com]
> Sent: Friday, June 15, 2012 9:51 PM
> To: user@hbase.apache.org
> 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
> succeeds
>
> HTH,
>
> Jerry
>
>
> On Fri, Jun 15, 2012 at 7:59 AM, Cristina <cr...@hotmail.com> wrote:
>
>> Hi,
>>
>> I have read that Hbase has read committed as isolation level, but I have
>> some
>> doubts.
>> Is it possible to chage this level, for instance to read uncommitted? How
>> could
>> I do this?
>> Another question, Is this isolation level based on locks? I have doubts
>> because
>> Hbase has multiversion concurrency control so it may implement read
>> committed
>> snapshot or snapshot isolation.
>>
>> Thanks,
>>   Cristina
>>
>>

Re: Isolation level

Posted by Michael Segel <mi...@hotmail.com>.
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.

-Mike



On Jun 17, 2012, at 10:32 PM, Anoop Sam John wrote:

> Hi
>           You can check Scan#setIsolationLevel() API for changing the level. By default it is  read committed means read only committed writes.
> 
> -Anoop-
> ________________________________________
> From: Jerry Lam [chilinglam@gmail.com]
> Sent: Friday, June 15, 2012 9:51 PM
> To: user@hbase.apache.org
> 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
> succeeds
> 
> HTH,
> 
> Jerry
> 
> 
> On Fri, Jun 15, 2012 at 7:59 AM, Cristina <cr...@hotmail.com> wrote:
> 
>> Hi,
>> 
>> I have read that Hbase has read committed as isolation level, but I have
>> some
>> doubts.
>> Is it possible to chage this level, for instance to read uncommitted? How
>> could
>> I do this?
>> Another question, Is this isolation level based on locks? I have doubts
>> because
>> Hbase has multiversion concurrency control so it may implement read
>> committed
>> snapshot or snapshot isolation.
>> 
>> Thanks,
>>   Cristina
>> 
>> 


RE: Isolation level

Posted by Anoop Sam John <an...@huawei.com>.
Hi
           You can check Scan#setIsolationLevel() API for changing the level. By default it is  read committed means read only committed writes.

-Anoop-
________________________________________
From: Jerry Lam [chilinglam@gmail.com]
Sent: Friday, June 15, 2012 9:51 PM
To: user@hbase.apache.org
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
succeeds

HTH,

Jerry


On Fri, Jun 15, 2012 at 7:59 AM, Cristina <cr...@hotmail.com> wrote:

> Hi,
>
> I have read that Hbase has read committed as isolation level, but I have
> some
> doubts.
> Is it possible to chage this level, for instance to read uncommitted? How
> could
> I do this?
> Another question, Is this isolation level based on locks? I have doubts
> because
> Hbase has multiversion concurrency control so it may implement read
> committed
> snapshot or snapshot isolation.
>
> Thanks,
>    Cristina
>
>

Re: Isolation level

Posted by Jerry Lam <ch...@gmail.com>.
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
succeeds

HTH,

Jerry


On Fri, Jun 15, 2012 at 7:59 AM, Cristina <cr...@hotmail.com> wrote:

> Hi,
>
> I have read that Hbase has read committed as isolation level, but I have
> some
> doubts.
> Is it possible to chage this level, for instance to read uncommitted? How
> could
> I do this?
> Another question, Is this isolation level based on locks? I have doubts
> because
> Hbase has multiversion concurrency control so it may implement read
> committed
> snapshot or snapshot isolation.
>
> Thanks,
>    Cristina
>
>