System and method for supporting work sharing muxing in a cluster
First Claim
1. A system for supporting work sharing multiplexing in a cluster, comprising:
- one or more microprocessors;
a plurality of file descriptor caches that each contain one or more read-ready file descriptors;
a plurality of selectors and a plurality of selector queues, wherein each of said plurality of selectors is associated with a different selector queue of said plurality of selector queues, and wherein each of said plurality of selectors polls an associated file descriptor cache of said plurality of file descriptor caches, and writes read-ready file descriptors from the associated file descriptor cache to the associated selector queue of said plurality of selector queues;
a single shared queue coupled to said plurality of selectors, wherein each selector queue of said plurality of selector queues empties file descriptors from the associated selector queue of the plurality of selector queues into the single shared queue such that all read-ready file descriptors polled from the plurality of file descriptor caches by the plurality of selectors are provided to the single shared queue; and
a plurality of worker threads, running on the one or more microprocessors, that operates to process said read-ready file descriptors provided to said single shared queue.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method can provide efficient low-latency muxing between servers in the cluster. One such system can include a cluster of one or more high performance computing systems, each including one or more processors and a high performance memory. The cluster communicates over an InfiniBand network. The system can also include a middleware environment, executing on the cluster, which includes one or more application server instances. The system can include one or more selectors, wherein each said selector contains a queue of read-ready file descriptors. Furthermore, the system can include a shared queue, wherein the read-ready file descriptors in each said selector can be emptied into the shared queue. Additionally, a plurality of muxer threads operates to take work from said shared queue.
40 Citations
20 Claims
-
1. A system for supporting work sharing multiplexing in a cluster, comprising:
-
one or more microprocessors; a plurality of file descriptor caches that each contain one or more read-ready file descriptors; a plurality of selectors and a plurality of selector queues, wherein each of said plurality of selectors is associated with a different selector queue of said plurality of selector queues, and wherein each of said plurality of selectors polls an associated file descriptor cache of said plurality of file descriptor caches, and writes read-ready file descriptors from the associated file descriptor cache to the associated selector queue of said plurality of selector queues; a single shared queue coupled to said plurality of selectors, wherein each selector queue of said plurality of selector queues empties file descriptors from the associated selector queue of the plurality of selector queues into the single shared queue such that all read-ready file descriptors polled from the plurality of file descriptor caches by the plurality of selectors are provided to the single shared queue; and a plurality of worker threads, running on the one or more microprocessors, that operates to process said read-ready file descriptors provided to said single shared queue. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for supporting work sharing multiplexing in a cluster, comprising:
-
providing a plurality of file descriptor caches that each contain one or more read-ready file descriptors; providing a plurality of selectors and a plurality of selector queues, wherein each of said plurality of selectors is associated with an associated file descriptor cache of the plurality of file descriptor caches and a different selector queue of said plurality of selector queues; providing a single shared queue coupled to said plurality of selectors; polling said plurality of file descriptor caches with said plurality of selectors wherein each selector polls the associated file descriptor cache; writing read-ready file descriptors from each selector of said plurality of selectors to the selector queue associated with said each selector; emptying the read-ready file descriptors from all of the plurality of selector queues into the single shared queue such that all read-ready file descriptors polled from the plurality of file descriptor caches by the plurality of selectors are provided to the single shared queue; and processing said read-ready file descriptors provided to said single shared queue with a plurality of worker threads. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory machine readable storage medium having instructions stored thereon for supporting work sharing multiplexing in a cluster, which instructions, when executed, cause a system to perform steps comprising:
-
providing a plurality of file descriptor caches each containing one or more read-ready file descriptors; providing a plurality of selectors and a plurality of selector queues, wherein each of said plurality of selectors is associated with an associated file descriptor cache of the plurality of file descriptor caches and a different selector queue of said plurality of selector queues; providing a single shared queue coupled to said plurality of selectors; polling said plurality of file descriptor caches with said plurality of selectors wherein each selector polls the associated file descriptor cache; writing read-ready file descriptors from each selector of said plurality of selectors to the selector queue associated with said each selector; emptying the read-ready file descriptors from all of the plurality of selector queues into the single shared queue such that all read-ready file descriptors polled from the plurality of file descriptor caches by the plurality of selectors are provided to the single shared queue; and processing work said read-ready file descriptors provided to said single shared queue with a plurality of worker threads.
-
Specification