Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!

Alteryx Server Discussions

Find answers, ask questions, and share expertise about Alteryx Server.
SOLVED

Distributed Scheduling - Controller / Worker

siddartha_reddy
5 - Atom

Hi, 

I've been exploring about controller and worker since the last few days. I was able to push workflows to worker through controller and it ran. However I have couple of questions, it would be great if someone can address them on this forum. 

1. Can a server act as both Controller and Worker? Under System Settings I was able to check both Enable Worker, Enable Controller. I am curious to know if a controller can act as a worker as well. 

2. Suppose I have a Controller and multiple workers, How does the controller distribute the workflow/load among workers? Is there any load balancer that takes care of this job. 

3. Can we specify a task for each worker? Let's assume I have one controller and 2 workers. And my workflow needs to process two files ( File1 and File2). Can I configure one worker to process File1 and other to process File2? 

Thanks,
Sid

 

3 REPLIES 3
siddartha_reddy
5 - Atom
Matt helped me with the above questions. Below are his answers:

1. Can a server act as both Controller and Worker? Under System Settings I was able to check both Enable Worker, Enable Controller. I am curious to know if a controller can act as a worker as well. 
Yes, you can have the server act as both a Controller and a Worker.  You can do this in the System Settings by choosing Designer and Scheduler Only, Complete Alteryx Server (this will only be available if you a Server license and availability to install the Gallery components), or select Enable Controller and Enable Worker under Custom.

2. Suppose I have a Controller and multiple workers, How does the controller distribute the workflow/load among workers? Is there any load balancer that takes care of this job. 
For example, Let’s say that a workflow needs to process a million lines, how are these distributed over workers?
Jobs will be distributed to Workers on a first come, first serve basis..  Workers will constantly ping the Controller they are attached to, whether locally or remotely, to notify the Controller they are able to receive scheduled jobs.  When distributing a job out to a worker, the Scheduler will submit the job to the worker it receives the next ping from.  In your example above, the entirety of that workflow will be processed on the Worker the job is sent to.

3. Can we specify a task for each worker? Let's assume I have one controller and 2 workers. And my workflow needs to process two files ( File1 and File2). Can I configure one worker to process File1 and other to process File2? 
At this time, no, a workflow cannot be split between two different Workers.  A full workflow will be assigned to one Worker for completion.
1. Can a server act as both Controller and Worker? Under System Settings I was able to check both Enable Worker, Enable Controller. I am curious to know if a controller can act as a worker as well. 
Yes, you can have the server act as both a Controller and a Worker.  You can do this in the System Settings by choosing Designer and Scheduler Only, Complete Alteryx Server (this will only be available if you a Server license and availability to install the Gallery components), or select Enable Controller and Enable Worker under Custom.

2. Suppose I have a Controller and multiple workers, How does the controller distribute the workflow/load among workers? Is there any load balancer that takes care of this job. 
For example, Let’s say that a workflow needs to process a million lines, how are these distributed over workers?
Jobs will be distributed to Workers on a first come, first serve basis..  Workers will constantly ping the Controller they are attached to, whether locally or remotely, to notify the Controller they are able to receive scheduled jobs.  When distributing a job out to a worker, the Scheduler will submit the job to the worker it receives the next ping from.  In your example above, the entirety of that workflow will be processed on the Worker the job is sent to.

3. Can we specify a task for each worker? Let's assume I have one controller and 2 workers. And my workflow needs to process two files ( File1 and File2). Can I configure one worker to process File1 and other to process File2? 
At this time, no, a workflow cannot be split between two different Workers.  A full workflow will be assigned to one Worker for completion.
 
sandeep_chayanam
8 - Asteroid

Hi Gents,

 

Is there a way to explicitly define which workers to execute which workflows ?

 

For example, Worker1 runs Workflows1,2,3 &

Worker2 runs Workflows4,5,6

 

Thanks,

Sandeep.

 

chris_love
12 - Quasar

Hi Sandeep

 

As far as I am aware there isn't a way currently to specify which worker recieves which job. If you could come up with a good use case for this it may be applicable to post in the ideas section of the community.

 

Regards

Chris