Currently shared data and per node data get replicated on all nodes. It is better to have data replication control with following requirements
- Data should never get replicated
- Data should only get replicated on given set of nodes
- Data should only replicated on its Datacenter
In implementation the AbstractActiveGossiper is currently sending its shared data and per node data to a randomly selected live member. To control this replication we add a new property to the message (eg: SharedDataMessage has a property which says whether this datum need to be replicated or not with a given member.) and use that property in the AbstractActiveGossiper when sending data to a member.