Thanks Justin This is one of the beasts in Solr
On Sat, Dec 31, 2022, 9:37 AM Justin Sweeney <[email protected]> wrote: > Hi all, > > ZkStateReader ( > > https://github.com/apache/solr/blob/main/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java > ) > is a complicated class with thousands of lines and numerous inner classes. > This makes approaching this class overly complex. I was recently > investigating some changes involving this class and I think this class > could use some refactoring to make changes easier to implement and review. > > This class is currently handling essentially all ZK data: cluster > properties, collection properties, collection state, live nodes, etc. The > handling of each of these could instead be delegated to other classes > making it much more clear how to approach changing logic for a specific > data type in ZK. This will also make it easier to review changes as well as > deprecate unnecessary ZK elements in the future. > > I've taken a stab at a *draft* PR refactoring out the handling of Live > Nodes specifically: https://github.com/apache/solr/pull/1258. This is > still > WIP and just here to provide an idea of what this could look like. > > I wanted to surface this onto the dev list to solicit feedback on if it > makes sense to others to pursue refactoring here or if there are any > reasons I'm missing for why this all needs to be located in a single class. > > Thanks and Happy New Year! > > Justin >
