cancel
Showing results forย 
Search instead forย 
Did you mean:ย 

How are pipeline executions distributed across a Snaplex?

robin
Former Employee

When a request to run a pipeline is submitted against a Snaplex,the Control Plane must decide which member node to send the request to.

In making that decision,the Control Plane assumes that each node in a Snaplex is homogenous in terms of both hardware specifications (CPU, RAM, disk space) and installed software (operating system, SnapLogic Snaplex binaries, Java Runtime Environment) to derive a baseline utilization score.

It then factors in the number of active pipelines running on each member node to identify the nodes that are the least utilized.

It is out of this subset of least utilized nodes that some randomization is added to determine the Snaplex node that will receive the pipeline execution request.

If the hardware specifications member nodes are dissimilar or if there are additional applications or processing running on them locally,the pipeline load distribution calculations will be skewed which can manifest in the following behavior:

  • Irregular distribution of pipeline executions within the Snaplex
  • Pipelines rarely or never execute on specific Snaplex member nodes

To correct this behavior, ensure that all nodes in a Snaplex are at parity with one another in terms of both hardware specifications and installed software.

4 REPLIES 4

brettdorsey
New Contributor III

Thank you Robin, this makes a lot of sense in regards to evening spreading the load.

As we try to make our servers equal in hardware and software specifications, there will inevitably come a time when thatโ€™s not practically possible (i.e. Server minimum CPU availability raises across the board) and we will be in a situation where newer servers will inherently be more powerful. At that point, we would be looking at either upgrading some servers to make them comparable or replacing servers.

Is there any plans of supporting different configurations of hardware in some sort of load balancing configuration setting? ServerA - 1.0x, ServerB - 1.0x, ServerC = 1.5x capicity, etc.

Thanks!

@brettdorsey donโ€™t believe itโ€™s on the immediate roadmap but something that we can discuss with you going forward. Iโ€™ll make our PM team (including @cstewart, VP of Product) aware.

cstewart
Former Employee

Brett, we are aware of this requirement. It is our practice to specify that nodes in a single Snaplex be of similar configuration, and with the majority of customers using some form of server virtualisation this has not been, and continues to reduce being, over time as an issue.
That said, it is certainly on the โ€œwould like to enhanceโ€ list, but not at this point scheduled.
Thanks for raising this, the feedback from our customers is always welcome as it helps us gauge the importance of issues amongst customers.
Craig

epearson
New Contributor III

We are having an issue where all our traffic tends to go to a single node. If I restart the snaplexes, it tends to help for a few days, but then goes back to a steady state around a single server. This is effectively leaves us with only a single node and we are running into memory issues. I do have a ticket in with support, but they havenโ€™t been much help. Curious how many others are having this same problem. Our snaplex nodes I believe are identical in how they are configured (cpu, memory, etc). It doesnโ€™t seem like this load balancing strategy works and would be nice to have other options to select like round-robin. At least with round-robin, weโ€™d get something running on our other node.