[
https://issues.apache.org/jira/browse/HBASE-12802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ted Yu updated HBASE-12802:
---------------------------
Attachment: 12802-1.0.patch
Patch for branch-1
[~enis]:
Do you want this in 1.0.0 ?
> 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: 12802-1.0.patch, 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.
> flushCommits() are only necessary after a setAutoFlushTo(false) is called.
> Here's the relevant code from HTable.java:
> {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 writeAysncBuffer.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)