Description
SUBJ.
The plan is to reimplement janitor and rebalancer interaction with remote nodes. Making those interactions index-aware (so that capi_set_view_manager doesn't have to infer anything, but gets clear instructions).
Core of this approach is new per bucket per node janitor_agent service. janitor and rebalancer do not interact directly with ns_memcached or replication supervisors. They're talking to janitor_agent in order to:
*) properly serialize interaction avoid some class of bugs (janitor tried to do something, timedout, then it reads potentially changing state)
*) allow janitor_agent to deal with index configuration changes. It'll do vbucket state changes in concert with index config updates
*) have much clearer and cleaner and future-compatible inter-node API so that future backwards-compatibility is easier
See commit message for more details.