Bug #9472
change the AppServerConnectionPool from a push to a pull model
100%
History
#1 Updated by Constantin Asofiei over 1 year ago
Legacy services (WEB, REST, SOAP) are posting the tasks to a number of workers which are managed by AppServerConnectionPool in a push mode. This was supposed to manage the pool of workers in a priority queue, so the concurrent request load would be distributed evenly. But this is not seem to be the case.
Changing the workers to a pull model from a global queue of tasks (still managed by AppServerConnectionPool) should improve this.
#3 Updated by Constantin Asofiei over 1 year ago
- % Done changed from 0 to 100
- Assignee set to Constantin Asofiei
- Status changed from New to Review
- reviewer Greg Shah added
Created task branch 9272a from trunk rev 15629.
The changes are in 9272a/15630 - this can be reviewed.
The idea here is that we need both a pull and push method:- push is required when a task is dependent on the worker (like running a persistent proc and after that functions/procs on it)
- pull can be used for normal non-persistent calls
The same will apply if/when we move the agent request to a pull method: push must be allowed to allow requests targeting that agent to be posted.
#4 Updated by Constantin Asofiei over 1 year ago
9472a/15631 add checking for tasks (from the pool queue or worker's private queue) in a single synchronized block.
I've tested SOAP persistent procs and they work OK.
#5 Updated by Constantin Asofiei over 1 year ago
Greg, please review.
#6 Updated by Greg Shah over 1 year ago
- Status changed from Review to Internal Test
Code Review Task Branch 9472a Revisions 15630 and 15631
The changes look good to me.
#7 Updated by Constantin Asofiei over 1 year ago
- Status changed from Internal Test to Merge Pending
I'm merging this to trunk now.
#8 Updated by Constantin Asofiei over 1 year ago
Branch 9472a was merged to trunk rev 15641 and archived.
#9 Updated by Greg Shah over 1 year ago
- Status changed from Merge Pending to Test