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

James Taylor commented on PHOENIX-3997:
---------------------------------------

An UPSERT SELECT to the same table which modifies row key columns calls 
commitBatchWithHTable, so we can be writing to the same table. We could 
potentially refactor the call to commitBatchWithHTable from commit to not call 
it.

If we're writing to a separate table, is there any need for this throttling in 
the case that the source and target tables happen to be reading and writing 
regions hosted on the same region server? 

> UngroupedAggregateRegionObserver.commitBatchWithHTable() should not check the 
> memstore size and wait for flush. 
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-3997
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3997
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Thomas D'Silva
>            Assignee: Geoffrey Jacoby
>             Fix For: 4.12.0
>
>         Attachments: PHOENIX-3997.patch
>
>
> [~ankit.singhal] 
> In UngroupedAggregateRegionObserver.commitBatchWithHTable() do we need to 
> check the memstore size and wait for the flush. We are using a htable to 
> write the mutations.
> {code}
>  // When memstore size reaches blockingMemstoreSize we are waiting 3 seconds 
> for the
>         // flush happen which decrease the memstore size and then writes 
> allowed on the region.
>         for (int i = 0; region.getMemstoreSize().get() > blockingMemstoreSize 
> && i < 30; i++) {
>             try {
>                 checkForRegionClosing();
>                 Thread.sleep(100);
>             } catch (InterruptedException e) {
>                 Thread.currentThread().interrupt();
>                 throw new IOException(e);
>             }
>         }
>         logger.debug("Committing batch of " + mutations.size() + " mutations 
> for " + table);
>         try {
>             table.batch(mutations);
>         } catch (InterruptedException e) {
>             throw new RuntimeException(e);
>         }
> {code}
> FYI [~jamestaylor] [~apurtell]



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to