[ 
https://issues.apache.org/jira/browse/ACCUMULO-1771?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13815071#comment-13815071
 ] 

Keith Turner commented on ACCUMULO-1771:
----------------------------------------

bq. Is this a dupe or abstraction of ACCUMULO-1766?

Its not a dupe of ACCUMULO-1766, but its caused by different code making the 
same assumption.  The code treats the first configured URI specially.   I am 
thinking the list of uris should be used as list of possible places to store 
new files.   The configured list of uris does not represent all of the 
locations that Accumulo has stored files in the past.  

 # User initializes with URI_1 in config, runs w/ this for a bit, then changes 
config to contain URI_2 and URI_3.
 # User initializes with URI_1 and URI_2, runs w/ this for a bit, then changes 
config to URI_0, URI_1, and URI_2
 # User initializes with URI_1 and URI_2, user wants to reinit so they clear 
URI_1 (but forget to clear URI_2), User initializes again with URI_1 and URI_2
 # User initializes instance 1 with URI_1.  User initializes instance 2 with 
URI_2.   User shuts down both instances and adds URI_2 to instance 1 config.

In scenario 1 Accumulo will probablly not start because because it will look 
for the instance id and data version at URI_2.  In secnario 2 Accumulo will 
look for instance id and data version at URI_0.   In scenario 3 initialization 
may succeed even though URI_2 is dirty.  Scenario 4 shows adding a dirty URI to 
an existing instance.

A possible solution is the following.
 * init checks and initializes all URIs configured at the time it runs (upgrade 
would also need to do this)
 * master, tserver, etc check the set of URIs when they start and ensure 
instance id and data version are consistent across all.  If server processes 
ever reload this prop, the check would need to be redone.
 * provide a utility to initialize a new URI.  This utility would fail if the 
URI is not clean.  The utility would have to be run before adding the URI to 
the Accumulo config. 

Another possible solution is to store the list of URIs in zookeeper and provide 
instance operations for mutating that list.


> Instance id and version info only stored on one hdfs instance
> -------------------------------------------------------------
>
>                 Key: ACCUMULO-1771
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-1771
>             Project: Accumulo
>          Issue Type: Sub-task
>          Components: master, tserver
>            Reporter: Keith Turner
>            Priority: Critical
>             Fix For: 1.6.0
>
>
> When instance.volumes contains multiple uris only the first one is 
> initialized with the data version and instance id.   If the user changes the 
> order of the uris in the config, it seems like Accumulo will stop working 
> correctly.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to