hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stack <st...@duboce.net>
Subject Re: Hbase v0.98 - does disabling autoflush affect Deletes or just Puts?
Date Tue, 17 May 2016 17:28:08 GMT
On Tue, May 17, 2016 at 7:18 AM, Natasha d'silva <natashads@gmail.com>
wrote:

> Okay, good to know.
>
>
> One last clarification: everytime I call:
> HTableInterface table = connection.getTable(tableNameBytes);
> *Must* there always be a call to  table.close()?
> I would like to avoid caching a reference to an HTableInterface object, but
> to do that means that I have to call getTable every time I need to
> put/delete etc.
> If, in turn, I must call table.close() every time, then it defeats the
> purpose of disabling autoflush since each close() will trigger a call to
> flushCommits().
> So can I call connection.getTable() without closing the returned table, if
> I ensure that I will call table.close() when I need to?
>
>
Probably best if you read the code if you intend to take an unorthodox
route. See what happens when you do getTable... see resources allocated and
then how they'll allocate a buffer for the HTable instance. Calling close
ensures all resources are returned and flushed safely. You need to ensure
that whatever your strategy, the result must end up in the same cleanup.



>
> Lastly: this is what I was referring to when I mentioned that Puts and
> Delets are mentioned together as Writes  in the 0.98 doc:
>
> https://github.com/apache/hbase/blob/0.98/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java#L91
>
>
Thanks. Let me fix.

St.Ack



> On Mon, May 16, 2016 at 8:24 PM, Stack <stack@duboce.net> wrote:
>
> > On Mon, May 16, 2016 at 5:20 PM, Natasha d'silva <natashads@gmail.com>
> > wrote:
> >
> > > Thanks for the quick response. What about check and put? The check is
> > > atomic but is the put buffered?
> > >
> >
> > No. checkAnd* are operations unto themselves that are sent to the server
> to
> > run; only it has the means of achieving a checkAnd* that has integrity.
> > St.Ack
> >
> >
> >
> > > On May 16, 2016 6:30 PM, "Stack" <stack@duboce.net> wrote:
> > >
> > > > In 0.98, only Puts are buffered.
> > > >
> > > > I did a search of the above text but didn't find it in 0.98... I'm
> > > > searching wrong? Mind fling an issue so we fix the above
> > > misdocumentation?
> > > >
> > > > Thank you,
> > > > S
> > > >
> > > >
> > > >
> > > > On Mon, May 16, 2016 at 10:30 AM, Natasha d'silva <
> natashads@gmail.com
> > >
> > > > wrote:
> > > >
> > > > > Hi, I would like some clarification on whether or not disabling
> > > autoflush
> > > > > affects Put and Delete operations or just Puts.
> > > > > The setAutoFlush doc states that it only affects Puts, but
> elsewhere
> > in
> > > > the
> > > > > documentation for HTable, Puts and Writes are mentioned together:
> "In
> > > > case
> > > > > of writes (Put, Delete), the underlying write buffer can be
> corrupted
> > > if
> > > > > multiple threads contend over a single HTable instance."
> > > > > I would appreciate it if someone could please clarify.
> > > > >
> > > > > Thanks!
> > > > >
> > > > > --
> > > > > -Natasha D'Silva
> > > > >
> > > >
> > >
> >
>
>
>
> --
> -Natasha D'Silva
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message