hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Solomon Duskis (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-12802) Remove unnecessary Table.flushCommits()
Date Mon, 05 Jan 2015 22:13:34 GMT

    [ https://issues.apache.org/jira/browse/HBASE-12802?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14265209#comment-14265209
] 

Solomon Duskis commented on HBASE-12802:
----------------------------------------

[~stack]: I'll run the tests a few times.  The premise here is that flushCommits() are only
necessary after a setAutoFlushTo(false) is called.

{code:title=HTable.java|borderStyle=solid}
  @Override
  public void put(final Put put)
      throws InterruptedIOException, RetriesExhaustedWithDetailsException {
    doPut(put);
    if (autoFlush) {
      flushCommits();
    }
  }

  /**
   * {@inheritDoc}
   */
  @Override
  public void put(final List<Put> puts)
      throws InterruptedIOException, RetriesExhaustedWithDetailsException {
    for (Put put : puts) {
      doPut(put);
    }
    if (autoFlush) {
      flushCommits();
    }
  }
{code}

Puts have implicit flushCommits() calls when autoFlush is true.  Deletes are not affected
by autoFlush() and are not directly impacted by flushCommits() since deletes are not added
to the writeAysncBufferr.

If I'd have to guess, I would say that flushCommits() used to affect all mutations, but along
the way, there were dramatic changes to how the various mutation types are handled.

> Remove unnecessary Table.flushCommits()
> ---------------------------------------
>
>                 Key: HBASE-12802
>                 URL: https://issues.apache.org/jira/browse/HBASE-12802
>             Project: HBase
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0
>            Reporter: Solomon Duskis
>            Assignee: Solomon Duskis
>         Attachments: HBASE-12802.patch, HBASE-12802B.patch
>
>
> It looks like there are a lot of places where flushCommits() are called on tables that
do not have autoFlush turned on.  That might be a legacy concern from pre-autoFlush days.
 HBASE-12728 will likely result in removing the flushCommits() method from Table.  The patch
for this issue should remove all unnecessary calls to flushCommit() to prepare for the full
fix..



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message