System and method for using a sequencer in a concurrent priority queue
First Claim
Patent Images
1. A system comprising:
- one or more microprocessors;
a priority queue for prioritizing a plurality of requests received from a plurality of consumers;
wherein the priority queue comprises a synchronized block having a continuation passing function and manages a plurality of threads for non-blocking receiving of said plurality of requests from said plurality of consumers;
wherein the priority queue comprises a calendar ring buffer comprising a calendar ring buffer memory which operates to store a first subset of said plurality of requests having a target response time less than a pre-configured time;
wherein the priority queue comprises an outlier list comprising an outlier list memory which operates to store a second subset of said plurality of requests having a target response time greater than the pre-configured time;
wherein the priority queue comprises a sequencer which operates to enforce a first-in-first-out order for said second subset of said plurality of requests stored in the outlier list; and
wherein the priority queue operates to reduce the contention among the plurality of consumers and the plurality of requests.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method can support a concurrent priority queue. The concurrent priority queue allows a plurality of threads to interact with the priority queue. The priority queue can use a sequencer to detect and order a plurality of threads that contend for one or more requests in the priority queue. Furthermore, the priority queue operates to reduce the contention among the plurality of threads.
81 Citations
20 Claims
-
1. A system comprising:
-
one or more microprocessors; a priority queue for prioritizing a plurality of requests received from a plurality of consumers; wherein the priority queue comprises a synchronized block having a continuation passing function and manages a plurality of threads for non-blocking receiving of said plurality of requests from said plurality of consumers; wherein the priority queue comprises a calendar ring buffer comprising a calendar ring buffer memory which operates to store a first subset of said plurality of requests having a target response time less than a pre-configured time; wherein the priority queue comprises an outlier list comprising an outlier list memory which operates to store a second subset of said plurality of requests having a target response time greater than the pre-configured time; wherein the priority queue comprises a sequencer which operates to enforce a first-in-first-out order for said second subset of said plurality of requests stored in the outlier list; and wherein the priority queue operates to reduce the contention among the plurality of consumers and the plurality of requests. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for prioritizing a plurality of requests received from a plurality of consumers in a middleware machine environment, the method comprising;
-
receiving said plurality of requests from said plurality of consumers using a synchronization block having a continuation passing function which manages a plurality of threads for non-blocking receiving of said plurality of requests from said plurality of consumers; storing a first subset of said plurality of requests having a target response time less than a pre-configured time in a calendar ring buffer; storing a second subset of said plurality of requests having a target response time greater than the pre-configured time in an outlier list; enforcing a first-in-first-out order for said second subset of said plurality of requests stored in the outlier list using a sequencer; and reducing contention among said plurality of consumers and said plurality of requests. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer readable medium including instructions stored thereon for prioritizing a plurality of requests received from a plurality of consumers in a middleware machine environment, which instructions, when executed by a computer, cause the computer to perform steps comprising:
-
receiving said plurality of requests from said plurality of consumers using a synchronization block having a continuation passing function which manages a plurality of threads for non-blocking receiving of said plurality of requests from said plurality of consumers; storing a first subset of said plurality of requests having a target response time less than a pre-configured time in a calendar ring buffer; storing a second subset of said plurality of requests having a target response time greater than the pre-configured time in an outlier list; enforcing a first-in-first-out order for said second subset of said plurality of requests stored in the outlier list using a sequencer; and reducing contention among said plurality of consumers and said plurality of requests.
-
Specification