[ https://issues.apache.org/jira/browse/IGNITE-4378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vladimir Ozerov updated IGNITE-4378: ------------------------------------ Fix Version/s: (was: 2.1) 2.2 > Affinity function should support assigning partition to subset of cluster > nodes > ------------------------------------------------------------------------------- > > Key: IGNITE-4378 > URL: https://issues.apache.org/jira/browse/IGNITE-4378 > Project: Ignite > Issue Type: New Feature > Components: cache > Reporter: Dmitriy Setrakyan > Assignee: Alexei Scherbakov > Fix For: 2.2 > > > Currently both default affinity function(AF) implementations randomly choose > primary node among all topology nodes. > This may not be enough to handle complex data placement scenarios without > implementing own AF. > On example, some partitions can be assigned to more powerful hardware, or > limited to subset of cluster nodes due to ease of management or fault > tolerance scenarios. > We should implement node filter, which will allow to choose subset of cluster > nodes to place primary and backup partitions. > With already existing ability to filter backup nodes (using > {{AffinityBackupFilter}}) it will allow to implement different approaches to > data placement with Ignite without resorting to custom AF. > It's also desirable to include a practical example of both topology filters > based on node attribute values. > Proposed primary filter interface is below. > {noformat} > /** > * Allows partition placement to subset of cluster node. > * > * Backup nodes also will be assigned from the subset. > */ > public interface AffinityPrimaryFilter extends IgniteBiClosure<Integer, > List<ClusterNode>, List<ClusterNode>> { > /** > * Return nodes allowed to contain given partition. > * @param partition Partition. > * @param currentTopologyNodes All nodes from current topology. > * @return Subset of nodes. > */ > @Override public List<ClusterNode> apply(Integer partition, > List<ClusterNode> currentTopologyNodes); > } > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)