You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@apex.apache.org by Devendra Tagare <de...@datatorrent.com> on 2016/06/30 03:55:32 UTC

Affinity support in Apex

Hi All,

I was checking out affinity support in a DAG that has 3 operators,

Operator 1 -> Operator 2 -> Operator 3

I am trying to ensure that Operator 1 and Operator 3 are on the same node
always and Operator 2 could be anywhere.

Here's the relevant code snippet,

    List<String> operatorList = new LinkedList<String>();

    operatorList.add("Operator1");

    operatorList.add("Operator3");

    AffinityRulesSet ruleSet = new AffinityRulesSet();

    List<AffinityRule> rules = new ArrayList<>();

    rules.add(new AffinityRule(Type.AFFINITY, operatorList, Locality.
NODE_LOCAL, false));

    ruleSet.setAffinityRules(rules);

    dag.setAttribute(DAGContext.AFFINITY_RULES_SET, ruleSet);


This seems to be working consistently for 2 operators but does not work for
3 operators with Locality.NODE_LOCAL.

I have set relaxLocality to false so it should be enforced always.

It works for 3 operators when Locality is CONTAINER_LOCAL or THREAD_LOCAL.

Is this the expected behavior  ?

Thanks,

Dev