[
https://issues.apache.org/jira/browse/ACCUMULO-2268?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Josh Elser updated ACCUMULO-2268:
---------------------------------
Fix Version/s: (was: 1.7.0)
1.8.0
> Use conditional mutations to update metadata table
> --------------------------------------------------
>
> Key: ACCUMULO-2268
> URL: https://issues.apache.org/jira/browse/ACCUMULO-2268
> Project: Accumulo
> Issue Type: Improvement
> Reporter: Keith Turner
> Fix For: 1.8.0
>
>
> For correctness Accumulo requires that only one tablet server at a time serve
> a tablet. In order to enforce this constraint, Accumulo uses zookeeper
> locks. It's assumed when a tablet server lock disappears that the tablet
> server will kill itself. Therefore a tablet that's assigned to a dead tablet
> server can be safely reassigned. However sometimes tablet servers continue
> to operate for a period of time after losing their locks. Sometimes this is
> caused by bugs in Accumulo, sometimes it's the Java GC or swapping (and the
> tserver does die), sometimes it's problems with zookeeper (like the zk thread
> that reports lock lost dies).
> In Accumulo 1.6 conditional mutations were added. Making all tablet metadata
> updates use conditional mutations could make multiply-assigned tablets less
> able to do damage.
> For example if after a minor compaction, the metadata update mutation could
> require the tablet location to be the current tserver: it would prevent a
> zombie tserver from adding an extraneous file to the metadata table for a
> tablet.
> [~ctubbsii] has discussed refactoring all metadata code so that its more
> modular and works with zookeeper (for root tablet) and metadata table using
> same API. This solution could depend on that. It may also be useful to make
> the root tablet operate more like a regular tablet and store its list of
> files in zookeeper. Then the root tablet could benefit from these changes
> with the right abstraction layer.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)