[ 
https://issues.apache.org/jira/browse/YARN-6593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16094052#comment-16094052
 ] 

Chris Douglas commented on YARN-6593:
-------------------------------------

I like the {{T accept(Visitor<T> visitor)}} pattern and composing expressions 
with {{PlacementConstraints}}; these are well polished. I agree with 
[~leftnoteasy] on {{PlacementConstraints}} being the primary {{\@Public}} API. 
Do we want to support users adding new transforms? If not, some of the 
implementation details could be package-private.

[~leftnoteasy]: what are the semantics of updated constraints? Do they apply to 
all containers placed subsequently, or could it cause a reconfiguration of 
allocated containers? Or are updates restricted to (some?) parameters of the 
expression? This isn't covered in the design doc on YARN-6592.

Minor:
* {{convert}} methods in {{PlacementConstraintFromProtoConverter}} should fail 
if composite constraints have no children? Or would these invariants be checked 
by a validator after construction?
* {{PlacementConstraints#timedMillisConstraint}} could accept a 
[TimeUnit|https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html]
 and convert to ms
* In this expression:
{noformat}
+      if (constraint.getOp() == TargetOperator.IN) {
+        newConstraint = new SingleConstraint(constraint.getScope(), 1,
+            Integer.MAX_VALUE, constraint.getTargetExpressions());
+      } else {
{noformat}
Might operator types be extended in the future, where this is not correct?
* All the constraints derive from the inner, {{AbstractConstraint}} type. This 
avoids having {{PlacementConstraint}} accept a Visitor?
* A unit test demonstrating the PB serialization/deserialization would 
demonstrate the converter classes.

> [API] Introduce Placement Constraint object
> -------------------------------------------
>
>                 Key: YARN-6593
>                 URL: https://issues.apache.org/jira/browse/YARN-6593
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Konstantinos Karanasos
>            Assignee: Konstantinos Karanasos
>             Fix For: 3.0.0-alpha3
>
>         Attachments: YARN-6593.001.patch, YARN-6593.002.patch, 
> YARN-6593.003.patch, YARN-6593.004.patch
>
>
> This JIRA introduces an object for defining placement constraints.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to