keith-turner commented on PR #6139:
URL: https://github.com/apache/accumulo/pull/6139#issuecomment-3946824143

   > In the Manager class I changed the locking such that each Manager got its 
own lock at the same path that it's using today, but it's not an exclusive 
lock. Then I added a new path for the "primary manager".
   
   We may be able to avoid creating two ServerContexts if we make the 
non-primary lock the lock that is applied to a single server context in the 
process. Then could avoid the problem of metadata writes failing on managers 
that do not have the primary lock and are running fate operations.  That is why 
the 2nd server context was created.
   
   >This comment isn't a suggestion to change what you have here, just pointing 
out an alternative that may or may not help.
   
   Items 2,3,4 all sound like a good changes.
   
   > Before the lock is obtained some fake ServiceDescriptors are added to the 
ServiceLockData so that clients cannot connect. After the lock is obtained, the 
lock data is updated with the correct host and port information that we want to 
advertise for that type of Manager (primary vs active secondary).
   
   The current code is kinda doing something like w/ changes from #5419.  Need 
to handle the case of a client connecting to a non primary manager for some 
reason (like maybe using cached info on the client side).  The server side 
should kick something back to the client that makes it try to go elsewhere and 
maybe clear caches.  Not sure, but a client may currently hang indefinitely for 
this case.


-- 
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