Patent ID: 8869148

Claim:
A method of identifying a maximum concurrency level of a first processing stage of a plurality of processing stages in a distributed system, comprising: receiving measurement data indicating a starting time and an ending time of the first processing stage for each of a plurality of job requests; sorting, by a processor, the measurement data in an increasing arrival time order; storing the sorted measurement data in a concurrency determination database; initializing an observed concurrency level and the maximum concurrency level of the first processing stage to zero; traversing the sorted measurement data beginning with a first portion of the measurement data having an earliest starting time; increasing the observed concurrency level, by the processor, upon determining that a current portion of the measurement data indicates a starting time of the first processing stage for one or more of the job requests; decreasing the observed concurrency level, by the processor, upon determining that the current portion of the measurement data indicates an ending time of the first processing stage for one or more of the job requests; increasing the maximum concurrency level if the observed concurrency level was increased; and outputting the maximum concurrency level of the first processing stage for the plurality of job requests upon determining that the current portion of the measurement data indicates a last portion of the measurement data having the latest ending time, wherein the maximum concurrency level of a processing stage refers to a maximum number of job requests that the system can process at that stage at the same time.