[
https://issues.apache.org/jira/browse/PHOENIX-3997?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Geoffrey Jacoby updated PHOENIX-3997:
-------------------------------------
Attachment: PHOENIX-3997-v2.patch
[~jamestaylor] [[email protected]] [~sergey.soldatov] - Gave this some more
thought and tried out another approach. I put some more smarts in the commit()
method so that for the PK changing mutations, it uses the RegionInfo to check
whether they should go as a local region commitBatch or a remote region
commitBatchWithHTable.
Seems to make the logic cleaner, and as a side benefit, we might occasionally
avoid RPCs if the client's UPSERT SELECT changes the PK to fall only in the
same region.
What do you think?
> 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, PHOENIX-3997-v2.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)