[ https://issues.apache.org/jira/browse/ACCUMULO-1755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15169278#comment-15169278 ]
ASF GitHub Bot commented on ACCUMULO-1755: ------------------------------------------ GitHub user dlmarion opened a pull request: https://github.com/apache/accumulo/pull/75 ACCUMULO-1755: Modified TSBW so that all client threads will not bloc… I ditched review board and went back to the drawing board. Before this change all client threads that were adding mutations to a BatchWriter would block when the mutations needed to be written to the tablet servers. This change gives each client thread their own MutationWriter object using a ThreadLocal. With this change only one client should block on adding the mutations to the sendThreadPool object, and allows the other client threads to push mutations onto a new MutationSet. You can merge this pull request into a Git repository by running: $ git pull https://github.com/apache/accumulo ACCUMULO-1755 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/accumulo/pull/75.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #75 ---- commit 9bd48cdbd25a7baf19bbda007a8e36f8ec81cf07 Author: Dave Marion <dlmar...@apache.org> Date: 2016-02-26T16:26:53Z ACCUMULO-1755: Modified TSBW so that all client threads will not block on binMutations Before this change all client threads that were adding mutations to a BatchWriter would block when the mutations needed to be written to the tablet servers. This change gives each client thread their own MutationWriter object using a ThreadLocal. With this change only one client should block on adding the mutations to the sendThreadPool object, and allows the other client threads to push mutations onto a new MutationSet. ---- > BatchWriter blocks all addMutation calls while binning mutations > ---------------------------------------------------------------- > > Key: ACCUMULO-1755 > URL: https://issues.apache.org/jira/browse/ACCUMULO-1755 > Project: Accumulo > Issue Type: Improvement > Components: client > Reporter: Adam Fuchs > Assignee: Dave Marion > Fix For: 1.8.0 > > Time Spent: 10m > Remaining Estimate: 0h > > Through code inspection, we found that the BatchWriter bins mutations inside > of a synchronized block that covers calls to addMutation. Binning potentially > involves lookups of tablet metadata and processes a fair amount of > information. We will get better parallelism if we can either unlock the lock > while binning, dedicate another thread to do the binning, or use one of the > send threads to do the binning. > This has not been verified empirically yet, so there is not yet any profiling > info to indicate the level of improvement that we should expect. Profiling > and repeatable demonstration of this performance bottleneck should be the > first step on this ticket. -- This message was sent by Atlassian JIRA (v6.3.4#6332)