Nova Patents
US8874751B2

Candidate set solver with user advice

Summary by NHIP

Constraint-based node allocation

The system prioritizes display of compute nodes based on their unsatisfied constraint counts within a constraint tree. It associates each node with specific user actions that either satisfy ignored constraints or modify conditions to meet them before allocation occurs.

Claim Score by NHIP

Read claim 14, the broadest

Abstract

A stream application uses small chunks of executable code configured to process data tuples flowing into a processing element. A scheduler allocates the processing elements to individual compute nodes or hosts for execution. However, the stream application may assign various constraints that stipulate which hosts are suitable for a particular processing element. If a host meets the constraints, it may be categorized as an unconditional candidate host. In addition, the scheduler may also track conditional candidate hosts that would be suitable for the processing element if a certain user action is performed—e.g., modifying a constraint, removing a constraint, modifying a stream element, and the like. The list of conditional candidate hosts may then be displayed to the user who can choose to perform the one or more actions to change the conditional candidate host to an unconditional candidate host for the processing element.

US8874751B2, drawing sheet 1
Sheet 1 of 11

Term

Projected expiry 11 February 2032.

  1. Priority and filed
  2. Granted
  3. Today
  4. Projected expiry

14 claims: 4 independent, 10 dependent

  1. 1
    A computer program product for allocating a processing element selected from a plurality of processing elements to one of a first and a second compute nodes, the computer program product comprising:a non-transitory computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code configured to: prioritize for display an indication of the first compute node and an indication of the second compute node based on a respective total number of unsatisfied constraints associated with the first and second compute nodes, wherein the respective unsatisfied constraints are selected from a plurality of constraints in a constraint tree;associate the first compute node and the second compute node with respective user actions, wherein each user action at least one of: (i) changes a condition such that the associated compute node satisfies an unsatisfied constraint and (ii) instructs that the unsatisfied constraint of the associated compute node be ignored;upon determining the first and second compute nodes satisfy at least one constraint in the constraint tree, transmitting for prioritized display the indication of the first compute node and the associated user actions and the indication of the second compute node and the associated user actions;and responsive to the user performing at least one of the respective user actions, allocate the processing element to the first or second compute node associated with the performed user action.
  2. 7
    A computer program product for allocating a processing element selected from a plurality of processing elements to one of at least two compute nodes, the computer program product comprising:a non-transitory computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code configured to: compare a first compute node of the at least two compute nodes to a first constraint associated with a first level of a constraint tree, the first constraint determining whether the first compute node can be allocated to the processing element;if the first compute node does not satisfy the first constraint, determine whether the first compute node satisfies a second constraint of the constraint tree;if the first compute node does satisfy the second constraint, transmitting for display a user action that at least one of (i) changes a condition such that the first compute node satisfies the first constraint and (ii) instructs the first constraint to be ignored;after the user action is performed, allocate the processing element to the first compute node;determine if the first compute node satisfies other constraints associated with the constraint tree;determine a total number of unsatisfied constraints associated with the first compute node;determine for a second compute node of the at least two compute nodes a total number of unsatisfied constraints, wherein the second compute node is compared to the same constraints as that of the first compute node;and prioritize for display an indication of the first compute node and an indication of second compute node based on the respective total number of unsatisfied constraints for the first compute node and second compute node.
  3. 8
    A system, comprising:a computer processor;and a memory containing a program that, when executed on the computer processor, performs an operation for allocating a processing element selected from a plurality of processing elements to one of a first and a second compute nodes, comprising: prioritizing for display an indication of the first compute node and an indication of the second compute node based on a respective total number of unsatisfied constraints associated with the first and second compute nodes, wherein the respective unsatisfied constraints are selected from a plurality of constraints in a constraint tree;associate the first compute node and the second compute node with respective user actions, wherein each user action at least one of: (i) changes a condition such that the associated compute node satisfies an unsatisfied constraint and (ii) instructs the unsatisfied constraint of the associated compute node to be ignored;upon determining the first and second compute nodes satisfy at least one constraint in the constraint tree, transmitting for prioritized display the indication of the first compute node and the associated user actions and the indication of the second compute node and the associated user actions;and responsive to the user performing at least one of the respective user actions, allocating, by operation of one or more computer processors, the processing element to the first or second compute node associated with the performed user action.
  4. 14
    Broadest claimClaim Score 38, average(NHIP)A system, comprising:a computer processor;and a memory containing a program that, when executed on the computer processor, performs an operation for allocating a processing element selected from a plurality of processing elements to a compute node, comprising: comparing the compute node to a first constraint associated with a first level of a constraint tree, the first constraint determining whether the compute node can be allocated to the processing element;if the compute node does not satisfy the first constraint, determining whether the compute node satisfies a second constraint of the constraint tree;if the compute node does satisfy the second constraint, transmitting for display a user action that at least one of (i) changes a condition such that the compute node satisfies the first constraint and (ii) instructs the first constraint to be ignored;and after the user action is performed, allocating, by operation of one or more computer processors, the processing element to the compute node;determining if the compute node satisfies other constraints associated with the constraint tree;determine a total number of unsatisfied constraints associated with the first compute node;determining for a different compute node a total number of unsatisfied constraints, wherein the different compute node is compared to the same constraints as that of the compute node;and prioritize for display an indication of the compute node and an indication of the different compute node based on the respective total number of unsatisfied constraints for the compute node and different compute node.