accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josh Elser (JIRA)" <>
Subject [jira] [Commented] (ACCUMULO-2743) Improve stale-reads with ZooKeeper-backed data
Date Mon, 28 Apr 2014 19:16:20 GMT


Josh Elser commented on ACCUMULO-2743:

[~vines], true, that's valid, but it doesn't really make the user's (or, in this case, my)
life any easier :)

> Improve stale-reads with ZooKeeper-backed data
> ----------------------------------------------
>                 Key: ACCUMULO-2743
>                 URL:
>             Project: Accumulo
>          Issue Type: Improvement
>            Reporter: Josh Elser
>             Fix For: 1.7.0
> Writing test code against Accumulo, especially via MiniAccumuloCluster, can be extremely
frustrating. ZooKeeper is used for managing table configurations, among other things, to allow
all tabletservers to be aware of the state of a table.
> The problem is that each tabletserver uses a Watcher to see when updates occur, and then
it updates an internal cache of these properties. This is a problem even on an instance with
a single tserver when setting a table property (configuring an iterator is a good example).
The setTableProperty command is implemented via the Master, not a tserver like fetching the
table configuration is implemented, which means that you're racing against the Watcher in
the tserver.
> The cause of this is that test code gets riddled with code like the following:
> {code}
> String myProperty = tableConfiguration.getProperty("myProperty");
> for (int i = 0; i < retries && null == myProperty; i++) {
>   myProperty = tableConfiguration.getProperty("myProperty");
>   Thread.sleep(some_millis);
> }
> // Hope that you actually saw the update
> Assert.assertNotNull(myProperty)
> {code}

This message was sent by Atlassian JIRA

View raw message