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]
