Patent US6823515B2 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6823515B2 Expired / Lapsed US ⏱️ 0.0 years remaining

Performance enhancements for threaded servers

Assignee: International Business Machines Corp
•
Filing: 2001-05-10
•
Granted: 2004-11-23
•
Expires: 2021-05-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A technique, system, and computer program for enhancing performance of a computer running a multithreaded server application. A scheduling heuristic is defined for optimizing the number of available threads. This heuristic alleviates over-scheduling of worker threads by defining a technique to wait to assign an incoming request to a currently-executing thread (upon completion of the thread's current work), instead of awakening a blocked thread for the incoming request. Provision is made to ensure no thread waits too long. Two stages are associated with a passive socket, so that a connection is only bound to a worker thread when work arrives for that connection. A new type of socket is defined, for merging input from more than one source and making that merged input available for scheduling. A giveback function is defined, for optimizing assignment of threads to incoming requests when persistent connections are used. Threads that go idle are put onto an idle queue, releasing them from a worker thread.

Inventors

  • 👤 Patrick Michael LiVecchi

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 10:56
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/16; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4843; G06F9/4881

Claims Analysis

Total Claims: 15
Claim 1
Independent Claim 115 words
In a computing environment, computer readable code readable by a computer system in said environment, for enhancing performance of an application that services client connections using a plurality of worker threads, comprising: a subprocess for moving client connections from a pending connections queue to a first queue when each of said client connections is accepted by said application and confirmed by a client that requested said client connection; a subprocess for moving each of said client connections from said first queue to a second queue when an initial data packet arrives for said client connection; and a subprocess for assigning ones of said plurality of worker threads to said client connections on said second queue.
Claim 2
Dependent Claim 115 words
In a computing environment, computer readable code readable by a computer system in said environment, for enhancing performance of an application that services client connections using a plurality of worker threads, comprising: a subprocess for moving client connections from a pending connections queue to a first queue when each of said client connections is accepted by said application and confirmed by a client that requested said client connection; a subprocess for moving each of said client connections from said first queue to a second queue when an initial data packet arrives for said client connection; and a subprocess for assigning ones of said plurality of worker threads to said client connections on said second queue.
Claim 3
Dependent Claim 129 words
In a computing environment, computer readable code readable by a computer system in said environment, for enhancing performance of an application that services client connections using a plurality of worker threads, comprising: a subprocess for receiving client connections on multiple pending connections queues; a subprocess for moving said client connections from said multiple pending connections queues to first queues associated therewith as each of said client connections is accepted by said application and confirmed by a client that requested said client connection; a subprocess for moving each of said client connections from said first queues to a single queue when an initial data packet arrives for said client connection; and a subprocess for assigning ones of said plurality of worker threads to said client connections on said single queue.
Claim 4
Dependent Claim 129 words
In a computing environment, computer readable code readable by a computer system in said environment, for enhancing performance of an application that services client connections using a plurality of worker threads, comprising: a subprocess for receiving client connections on multiple pending connections queues; a subprocess for moving said client connections from said multiple pending connections queues to first queues associated therewith as each of said client connections is accepted by said application and confirmed by a client that requested said client connection; a subprocess for moving each of said client connections from said first queues to a single queue when an initial data packet arrives for said client connection; and a subprocess for assigning ones of said plurality of worker threads to said client connections on said single queue.
Claim 5
Dependent Claim 88 words
Computer readable code for enhancing performance of a multithreaded application according to claim 2 , wherein said subprocess for assigning further comprises: a subprocess for assigning said ones from a group of active worker threads comprised of changeable ones of said plurality of worker threads, and having a changeable number of said changeable ones, said changeable number being at least one, by using a scheduling heuristic that balancing said changeable number in said cative group against a current workload comprised of said client connections on said single queue.
Claim 6
Independent Claim 103 words
A system for enhancing performance of an application that services client connections using a plurality of worker threads in a computing environment, comprising: means for moving client connections from a pending connections queue to a first queue when each of said client connections is accepted by said application and confirmed by a client that requested said client connection; means for moving each of said client connections from said first queue to a second queue when an initial data packet arrives for said client connection; and means for assigning ones of said plurality of worker threads to said client connections on said second queue.
Claim 7
Independent Claim 103 words
A system for enhancing performance of an application that services client connections using a plurality of worker threads in a computing environment, comprising: means for moving client connections from a pending connections queue to a first queue when each of said client connections is accepted by said application and confirmed by a client that requested said client connection; means for moving each of said client connections from said first queue to a second queue when an initial data packet arrives for said client connection; and means for assigning ones of said plurality of worker threads to said client connections on said second queue.
Claim 8
Independent Claim 116 words
A system for enhancing performance of an application that services client connections using a plurality of worker threads in a computing environment, comprising: means for receiving client connections on multiple pending connections queues; means for moving said client connections from said multiple pending connections queues to first queues associated therewith as each of said client connections is accepted by said application and confirmed by a client that requested said client connection; means for moving each of said client connections from said first queues to a single queue when an initial data packet arrives for said client connection; and means for assigning ones of said plurality of worker threads to said client connections on said single queue.
Claim 9
Independent Claim 116 words
A system for enhancing performance of an application that services client connections using a plurality of worker threads in a computing environment, comprising: means for receiving client connections on multiple pending connections queues; means for moving said client connections from said multiple pending connections queues to first queues associated therewith as each of said client connections is accepted by said application and confirmed by a client that requested said client connection; means for moving each of said client connections from said first queues to a single queue when an initial data packet arrives for said client connection; and means for assigning ones of said plurality of worker threads to said client connections on said single queue.
Claim 10
Dependent Claim 86 words
The system for enhancing performance of a multithreaded application according to claim 5 , wherein said means for assigning further comprises: means for assigning said ones from a group of active worker threads comprised of changeable ones of said plurality of worker threads, and having a changeable number of said changeable ones, said changeable number being at least one, by using a scheduling heuristic that balances said changeable number in said active group against a current workload comprised of said client connections on said single queue.
Claim 11
Independent Claim 100 words
A method for enhancing performance of an application that services client connections using a plurality of worker threads in a computing environment, comprising the steps of: moving client connections from a pending connections queue to a first queue when each of said client connections is accepted by said application and confirmed by a client that requested said client connection; moving each of said client connections from said first queue to a second queue when an initial data packet arrives for said client connection; and assigning ones of said plurality of worker threads to said client connections on said second queue.
Claim 12
Independent Claim 100 words
A method for enhancing performance of an application that services client connections using a plurality of worker threads in a computing environment, comprising the steps of: moving client connections from a pending connections queue to a first queue when each of said client connections is accepted by said application and confirmed by a client that requested said client connection; moving each of said client connections from said first queue to a second queue when an initial data packet arrives for said client connection; and assigning ones of said plurality of worker threads to said client connections on said second queue.
Claim 13
Independent Claim 111 words
A method for enhancing performance of an application that services client connections using a plurality of worker threads in a computing environment, comprising the steps of: receiving client connections on multiple pending connections queues; moving said client connections from said multiple pending connections queues to first queues associated therewith as each of said client connections is accepted by said application and confirmed by a client that requested said client connection; moving each of said client connections from said first queues to a single queue when an initial data packet arrives for said client connection; and assigning ones of said plurality of worker threads to said client connections on said single queue.
Claim 14
Independent Claim 111 words
A method for enhancing performance of an application that services client connections using a plurality of worker threads in a computing environment, comprising the steps of: receiving client connections on multiple pending connections queues; moving said client connections from said multiple pending connections queues to first queues associated therewith as each of said client connections is accepted by said application and confirmed by a client that requested said client connection; moving each of said client connections from said first queues to a single queue when an initial data packet arrives for said client connection; and assigning ones of said plurality of worker threads to said client connections on said single queue.
Claim 15
Dependent Claim 86 words
The method for enhancing performance of a multithreaded application according to claim 8 , wherein said assigning step further comprises the step of: assigning said ones from a group of active worker threads comprised of changeable ones of said plurality of worker threads, and having a changeable number of said changeable ones, said changeable number being at least one, by using, a scheduling heuristic that balances said changeable number in said active group against a current workload comprised of said client connections on said single queue.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2007-11-23 2008-05-24 2008-11-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2011-11-23 2012-05-24 2012-11-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2015-11-23 2016-05-24 2016-11-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag