it is good question you have on WALEdit and transaction atomicity.
One WALEdit can have mutations from different rows.  But WALEdit is indeed
like a transaction in HBase.
This seemingly is contradictory.
It can be explained.  A HBase region 'tries' to apply the incoming batch of
mutations in batch mode for efficiency, but will not
guarantee how the batching is done or if there is any batching across rows.
On top of that HBase can not guarantee anything across regions.
One the other hand, if a set of mutations is done in a batch, it is indeed
like atomic transaction and in one WALEdits.

Thanks,

Jerry

On Wed, Mar 22, 2017 at 4:45 PM, Sreeram <sreera...@gmail.com> wrote:

> I am sorry for typo. For the second question I meant postWALWrite in
> WALObserver.
>
> default void postWALWrite
> <https://hbase.apache.org/devapidocs/src-html/org/apache/hadoop/hbase/
> coprocessor/WALObserver.html#line.86>
> (ObserverContext
> <https://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/coprocessor/
> ObserverContext.html><?
> extends WALCoprocessorEnvironment
> <https://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/coprocessor/
> WALCoprocessorEnvironment.html>>
> ctx,
> HRegionInfo
> <https://hbase.apache.org/devapidocs/org/apache/hadoop/
> hbase/HRegionInfo.html>
> info,
> WALKey
> <https://hbase.apache.org/devapidocs/org/apache/hadoop/
> hbase/wal/WALKey.html>
> logKey,
> WALEdit
> <https://hbase.apache.org/devapidocs/org/apache/hadoop/
> hbase/regionserver/wal/WALEdit.html>
> logEdit)
> throws IOException
> <http://docs.oracle.com/javase/8/docs/api/java/io/
> IOException.html?is-external=true>
>
> Thanks
>
> On 23 Mar 2017 02:37, "Ted Yu" <yuzhih...@gmail.com> wrote:
>
> > Sreeram:
> > For #2, did you mean this method ?
> >
> >   default void postWALRestore(final ObserverContext<? extends
> > RegionCoprocessorEnvironment> ctx,
> >
> >       HRegionInfo info, WALKey logKey, WALEdit logEdit) throws
> IOException
> > {}
> >
> > On Wed, Mar 22, 2017 at 12:56 PM, Vladimir Rodionov <
> > vladrodio...@gmail.com>
> > wrote:
> >
> > > a) HBase does not support transaction - it only guarantees that single
> > > mutation to a row-key is atomic. WALEdit can contains cells (mutations)
> > > from different rows (for example when you do butchMutatate all
> operations
> > > go to the same WALEdit afaik)
> > > b) I coud not find postWALEdit()  in RegionObserver API. What
> coprocessor
> > > hook did you mean exactly?
> > >
> > > -Vlad
> > >
> > > On Wed, Mar 22, 2017 at 5:19 AM, Sreeram <sreera...@gmail.com> wrote:
> > >
> > > > Hi,
> > > >
> > > >  I have below questions on WALEdit. Looking forward to answer from
> the
> > > > community.
> > > >
> > > >  a) I understand that all Cells in a given WALEdit form part of a
> > single
> > > > transaction. Since HBase atomicity is at row level, this implies all
> > > Cells
> > > > in a given WALEdit have the same row key. is this understanding is
> > > correct
> > > >
> > > >
> > > >
> > > >  b) With MultiWAL, does log sequence monotonically increase based on
> > > > transaction time stamp ?  Specifically, suppose there two
> transactions
> > > for
> > > > two different tables for a single region server at times t0 and t1
> (t0
> > <
> > > > t1). In the presence of MultiWAL, will the postWALEdit() coprocessor
> > > event
> > > > for transaction 0 be triggered before than transaction 1?
> > > >
> > > >
> > > >
> > > > Thanks,
> > > >
> > > > Sreeram
> > > >
> > > > PS: I use HBase version 1.2.0
> > > >
> > >
> >
>

Reply via email to