How a Faster Workflow Engine Can Increase Capacity

The following data provides some insight into how a faster workflow engine can increase capacity. The following scenario involves a process running an AgilePart calling a Web Service through the Internet.

On an average server:

Average event processing time is 551ms/event. Thread pool size = 10.

From activity to activity requires 3 events, hence 1 activity = 3 events.

Assuming one process instance contains 30 activities, and the tasks under each activity are completed immediately once assigned (no waiting time).

Time needed to complete 1 process using 1 thread:

= 551 ms/event   x   3 event/activity   x   30 activity/process

= 551   x   3   x   30 (ms/process)

Number of processes that can be completed in 1 day using 10 threads:

= Total time available in 24 hours (ms) x Thread pool size

      Time needed for 1 process (ms/process)

= 24 hours/day x 60 min/hr x 60 sec/min x 1000 ms/sec x 10 threads

      551 x 3 x 30 (ms/process)

=  17, 422 process/day

Same process on a faster server (Xeon 3.6 * 2):

The average event processing speed is 321(ms)/per event.

Thread pool size = 50.

Total processes that can be completed in 1 day

  = 50*24*60*60*1,000 / 321*3*30

= 149,533 process/day

The formula is:

Total processes that can be completed in 24 hours:

= [Thread pool size]*24*60*60*1,000/[Average event processing time]*3* [Number of activities

per process]

Or

Average event processing time

= [Thread pool size]*24*60*60*1,000/[Total processes that can be completed in 24 hours]*3*

[Number of activities per process]