keith-turner opened a new pull request, #6119:
URL: https://github.com/apache/accumulo/pull/6119

   It has a lot of rough edges, but this branch has a working distributed Fate 
where multiple processes can run fate operations.  The following are the 
highlights.
   
    * ManagerWorker : a new server class that runs fate operations.  These are 
currently only started by the new IT.
    * FateManager : This class partitions fate work across ManagerWorker 
processes.  Its currently only run by the new IT, would eventually be run by 
the manager.
    * MultipleManagerIT : probably the only IT that works.  It spins up 
multiple processes to run fate operations and then starts many threads that do 
table operations.  The table operations are working and fate operation are 
running in many processes.
   
   The foundation here is fairly solid so far.  The TODOs are
   
    * integerate w/ existing manager code, its all fairly standalone ATM.  
Currently this disables the manager process from running fate operations.  
Would need to clean up the existing fate code in the manager.
    * get tests working
    * decide how these new processes should be run
    * Need a RPC broadcast notification mechanism.  The manager currently has 
an in memory notification system where a fate operation can cause the TGW to 
take action and visa versa.  Could do something w/ one way RPCs.  This could be 
an independent set of changes.  Not having it just makes things slower.
   
   Need to determine how this will work out.  Seems like could do one of the 
following.
   
    1. Make ever manager process started attempt to be the primary manager and 
also start up manager worker services.  So if five manager processes were 
started, then one would be primary and all 5 would run fate (possible other 
stuff in the future).
    2.  Keep the manager and secondary manager the same as it currently is.  
Have a new manager worker process that user can start.
   
   I am leaning towards `#1` because it seems like a simpler user experience.  
Also it handles starting a single manager process better.  It also avoid a 
secondary manager process that is doing nothing. Although if pursuing `#1` 
would like to keep the code clean w/ strong encapsulation between functional 
pieces.
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to