+ Q: Can I miss events like data changed znode data events?
What do you mean "can you miss"? Like, is it possible or do you mean if it happens will we still be okay? Specifically which znode(s) are you talking about? unassigned ones? It's designed so we do not ever miss events, though we can actually miss an individual event we have guarantees about not missing end states.
+ Q: Why when we start a master do we assign root and meta? Thats a mistake?
Yeah it's a mistake to do that if a failed-over master. What the assignRoot/assignMeta methods should do is check to see if they are already assigned, and if so, do nothing. If not current assignment we should trigger one and then still wait as we do.
+ Q: We let out IEs and KEs? What are we doing to do w/ them up in the higher levels of server?
It becomes responsibility of callers. In most cases, a KE does an abort(). Interrupted needs to be handled accordingly (in general we don't expect most things to get interrupted, if they do, it's likely done at shutdown).
+ ClusterStatusTracker is wrong. Its znode is root region location rather than clusterStatusZNode ( /hbase/shutdown)?
Yes it's wrong. We're not really doing anything with it which is why that didn't matter I guess. Like we've discussed, this should be actually used to trigger RS startup rather than presence of a master.
+ In zkassign, we need to fix how it takes regionname when it really wants encodedregionname – errorprone; should just pass regioninfo everytime.
Sounds like a fine change to me. Just need to make sure we can always have a RegionInfo.
+ I movd to use event handlers to shutdown regions inside regionserver always.....
Not sure I totally follow. Let's discuss further.
Any chance at editing your previous comment and introducing some line breaks? I hate when these jiras go mega-wide
Good stuff. I'm still making my way through the svn log.