accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Keith Turner (JIRA)" <>
Subject [jira] [Created] (ACCUMULO-2268) Use conditinal mutations to update metadata table
Date Tue, 28 Jan 2014 18:00:42 GMT
Keith Turner created ACCUMULO-2268:

             Summary: Use conditinal mutations to update metadata table
                 Key: ACCUMULO-2268
             Project: Accumulo
          Issue Type: Improvement
            Reporter: Keith Turner
             Fix For: 1.7.0

For correctness Accumulo requires that only one tablet server at a time serve a tablet.  
Inorder to enforce this Accumulo uses zookeeper locks.  It assumed that a when a tablet server
dies, it will lose its lock and kill itself.  Therefore a tablet thats 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 caused by bugs in Accumulo,
sometimes it the Java GC or swapping (and the tserver does die), sometimes its problems w/
zookeeper (like the zk thread that reports lock lost dies).

In 1.6 Accumulo added contditional mutations.  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 required the tablet
location to be the current tserver that would prevent a zombie tserver from adding an extraneuous
file to the metadata table for a tablet.

[~ctubbsii] has discussed refactoring all metadata code so that its more modular and works
w/ 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
w/ the right abstraction layer.

This message was sent by Atlassian JIRA

View raw message