Currently, indexer uses multiple cluster info client objects i.e. each component in indexer has a separate cluster info client object. When there is a pool/service change notification, all these clients would refresh their cache resulting in significant load at ns_server.
Instead, indexer/projector process can maintain only on global cluster info client rather than initialising one per component. To do this, the updation of the cache data has to be made "Copy-On-Write".
With out copy-on-write, it may not be possible to maintain a global cluster info cache as it would lead to significant RLock and WLock contention between different components.