Ticket #206 (closed enhancement: fixed)
Opened 9 years ago
Explicitly distributing arrays within a replicated graph
|Reported by:||Bernhard Haumacher (haui at haumacher dot de)||Owned by:|
If partial replication (see ticket:171) requires to declare the class of an explicitly distributed object to implement a special interface (as described in ticket:205), there is no way to explicitly distribute array objects. Therefore, there should be another way to specify the distribution of an object without requiring its class to be modified. This could be achieved with a distribution API within the replicated object class. After creating an arbitrary object, the application could call distributeTo(Object obj, int ranks) to restrict the distribution of obj to the ranks of the replicated object specified by ranks.
The specified and actual distribution of objects within a replicated graph are stored explicitly. The distribution is part of the state of a replicated object, and the view to it is kept consistent on all nodes, where a copy of the corresponding object is allocated. To send incremental updates to the distribution, there is also a backup copy of the distribution that can be used to find local modifications by comparing it with the current distribution. This backup copy (that represents the distribution at the start of an update) is also used for deciding about the receivers for a certain patch, see ticket:183.
implemented since 1.08b.