accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dhutchis <>
Subject [GitHub] accumulo pull request: ACCUMULO-4229 BatchWriter Locator cache out...
Date Thu, 05 May 2016 01:30:43 GMT
GitHub user dhutchis opened a pull request:

    ACCUMULO-4229 BatchWriter Locator cache out-of-sync when shared with tserver

    This version targets master. Will commit shortly.

You can merge this pull request into a Git repository by running:

    $ git pull ACCUMULO-4229

Alternatively you can review and apply these changes as the patch at:

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #97
commit 618ec9251d868ce08a3c43c0edf36296d37d8091
Author: Dylan Hutchison <>
Date:   2016-04-23T08:02:01Z

    ACCUMULO-4229 Add breaking test to reproduce sync problem
    Add two tests in BatchWriterInTabletServerIT.
    The first passes and establishes a baseline.
    The second fails, proving the issue.
    I added an extra iterator and a utility class for the IT.
    These are in the test package, so they do not get packaged into normal builds.

commit ebfa4bba15d054f554f5040e7dc6c6b668b58a9b
Author: Dylan Hutchison <>
Date:   2016-04-23T08:33:24Z

    ACCUMULO-4229 SyncingTabletLocator ensures caching clients align with tserver
    The previously failing test case now passes.
    A boolean indicator variable in TabletLocator
    is set to false when the static TabletLocator cache is cleared.
    Client writers and readers should check the indicator
    before using a locally cached Locator.
    A SyncingTabletLocator automatically fetches the current TabletLocator
    when the cached TabletLocator becomes outdated (when isValid flips false).
    Clients now stay in sync with the static TabletLocator cache
    through the use of SyncingTabletLocator, which
    TimeoutTabletLocator now extends.
    Variables assumed invariant for SyncingTabletLocator are now final.
    This does not affect semantics.
    The new design allows for TabletServerBatchWriter to use its local Locator cache
    more aggressively than it used to.
    The invalidateCache() methods of SyncingTabletLocator defensively sync,
    guarding against goofy code that might use more than one TabletLocator.
    It may be possible to replace the static locators collection with a Guava class.
    This is not done here for simplicity.
    Closes apache/accumulo#96


If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at or file a JIRA ticket
with INFRA.

View raw message