ndimiduk commented on pull request #2540: URL: https://github.com/apache/hbase/pull/2540#issuecomment-708514958
@Apache9 > And in general, I think the design here is a bit strange. My objective was to make a normalizer subsystem that's as self-contained as possible. The rough edges are related to the non-modular design of HMaster. I didn't want to refactor the whole class in order to add this feature. As for the design, I'm open to suggestions, if you have anything more specific. > If we define RegionNormalizerManager as a separated feature, then we should schedule chore and cancel it in RegionNormalizerManager itself, in the start and stop methods. This was my original strategy. It doesn't work well, because master owns directly all these chores, and is picky about the order in which subsystems are initialized. Instantiation of the RegionNormalizerManager is also in an odd place, because of conditional initialization of ZKWatchers. > If not, we should do things like CatalogJanitor, where the class itself is a chore, so in HMaster we will schedule and cancel it. CatalogJanitor is a good deal simpler and conceptually makes sense being limited in scope to a Chore. It doesn't have a "switch" in ZooKeeper to manage, nor does it have a worker with a background thread. It appears there's been some time spent recently on the design of CatalogJanitor as a subsystem. Let me study it a bit and see what lessons I have to learn here. > Anyway, let's see if this could fix the problem first. Sure thing. Since you are both so allergic to the Optional class, I'll swap it for a null check. ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: [email protected]
