Agreed, though I have put some thought. For ElasticSearch, since it's HTTP I'm pretty sure the connections aren't persistent. So, if we move the hosts configuration to the configuration admin, and have it invoke `SearchAPI.refreshConfiguration` when search config changes, that should work as-is in the cluster without interruption (e.g., in-progress searches won't be killed, and new ones will use the new hosts).

For Cassandra I think it might be similar, but depends if the thrift connections are persistent (I don't think they are..). The cassandra pool has a "close" method that I'd need to look into further. Worst case is that when the host configuration changes, we: a) open a new pool with the new config to serve new connections; b) store the old pool in a temporary list of "pools to close"; c) after a certain amount of time (where we assume in-progress connections have been satisfied -- maybe 10 seconds), close the expired pool.