Right now (after
SOLR-5473 was committed), a node watches a collection only if stateFormat=1 or if that node hosts at least one core belonging to that collection.
This means that a node which is the overseer operates on all collections but watches only a few. So any read goes directly to zookeeper which slows down overseer operations.
Let's have the overseer node watch all collections always and never remove those watches (except when the collection itself is deleted).