Apparatus and method for providing and processing prioritized messages in an ordered message clustered computing environment
First Claim
1. An apparatus comprising:
- at least one processor;
a memory coupled to the at least one processor;
a cluster engine residing in the memory and executed by the at least one processor, the cluster engine providing ordered messages;
a job residing in the memory and executed by the at least one processor, the job including;
at least one work thread that performs at least one predefined task, the work thread including a priority queue that receives priority messages, the work thread processing a priority message on the priority queue before processing a next task to be processed that was received before the priority message;
a main thread that receives messages from at least one computer system coupled to the apparatus and that routes a priority message to the at least one work thread.
1 Assignment
0 Petitions
Accused Products
Abstract
A clustered computer system includes multiple computer systems (or nodes) on a network that can become members of a group to work on a particular task. Each node includes a main thread and one or more work threads. The main thread receives messages from other computer systems in the group, and routes messages intended for the work thread to a response queue and a work queue in the work thread, depending on the type of the message. If the message is a response to a currently-executing task, the message is placed in the response queue in the work thread. If the message is a new non-priority task that needs to be processed, the message is routed to the work queue in the work thread. If the message is a priority message, the message is written to both the work queue and the response queue in the work thread. A priority message processing mechanism uses a priority queue defined in the work thread to assure that the priority message is processed the next time the work thread is ready to process a new task, even if the priority message was received after other tasks have been sent to the work queue.
39 Citations
34 Claims
-
1. An apparatus comprising:
-
at least one processor;
a memory coupled to the at least one processor;
a cluster engine residing in the memory and executed by the at least one processor, the cluster engine providing ordered messages;
a job residing in the memory and executed by the at least one processor, the job including;
at least one work thread that performs at least one predefined task, the work thread including a priority queue that receives priority messages, the work thread processing a priority message on the priority queue before processing a next task to be processed that was received before the priority message;
a main thread that receives messages from at least one computer system coupled to the apparatus and that routes a priority message to the at least one work thread. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A networked computer system comprising:
-
a cluster of computer systems that each includes;
a network interface that couples each computer system via a network to other computer systems in the cluster;
a memory;
a cluster engine residing in the memory and executed by the at least one processor, the cluster engine providing ordered messages; and
a job residing in the memory, the job including;
at least one work thread that performs at least one predefined task, the work thread including a priority queue that receives priority messages, the work thread processing a priority message on the priority queue before processing a next task to be processed that was received before the priority message; and
a main thread that receives messages from at least one computer system coupled to the apparatus and that routes a priority message to the at least one work thread.
-
-
10. An apparatus comprising:
-
(1) at least one processor;
(2) a memory coupled to the at least one processor;
(3) a cluster engine residing in the memory and executed by the at least one processor, the cluster engine providing ordered messages;
(4) a job residing in the memory and executed by the at least one processor, the job including;
(4A) at least one work thread that performs at least one predefined task that includes at least one synchronization event, wherein the work thread comprises;
(4A1) a response queue that receives messages relating to a currently-executing task;
(4A2) a work queue that receives new tasks to be executed; and
(4A3) a priority queue that receives priority messages;
(4A4) a priority message processing mechanism within the work thread that processes a priority message on the priority queue before processing a next task to be processed that was received before the priority message;
(4B) a main thread that registers with a cluster engine to become a member of a group of jobs that executed on a plurality of computer systems coupled to the apparatus, that receives messages from at least one of the plurality of computer systems, and that routes priority messages to at least one of the response queue and the work queue, depending on the type of the message.
-
-
11. A computer-implemented method for processing a task using a plurality of jobs that form a group in a clustered computing environment, the method comprising the steps of:
-
providing a cluster engine for each member of the group that communicates with the other cluster engines in the group, the cluster engine providing ordered messages to its corresponding group member;
providing at least one work thread for each job that executes the task, the at least one work thread including a priority queue that receives priority messages, the work thread processing a priority message before processing a next task to be processed that was received before the priority message;
providing a main thread for each job, the main thread performing the steps of;
receiving messages from other members of the group via the cluster engine corresponding to the main thread; and
routing a priority message for the at least one work thread to the priority queue. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer-implemented method for processing a task using a plurality of jobs that form a group in a clustered computing environment, the method comprising the steps of:
-
(1) providing a cluster engine for each member of the group that communicates with the other cluster engines in the group, the cluster engine providing ordered messages to its corresponding group member;
(2) providing at least one work thread for each job that executes the task, the at least one work thread comprising;
(2A) a response queue that receives messages relating to a currently-executing task;
(2B) a work queue that receives new tasks to be executed; and
(2C) a priority queue that receives priority messages;
(2D) a priority message processing mechanism within the work thread that processes a priority message on the priority queue before processing a next task to be processed that was received before the priority message;
(3) providing a main thread for each job, the main thread performing the steps of;
(3A) registering with a cluster engine to become a member of a group of jobs that executed on a plurality of computer systems coupled to the apparatus;
(3B) receiving messages from the cluster engines in the other members of the group;
(3C) routing messages received from the cluster engines in the other members of the group to at least one of the response queue and the work queue in the at least one work thread depending on the type of the message; and
(3D) routing priority messages to the priority queue. - View Dependent Claims (20)
-
-
21. A program product comprising:
-
(A) a computer program comprising;
at least one work thread that performs at least one predefined task, the work thread including a priority queue that receives priority messages, the work thread processing a priority message on the priority queue before processing a next task to be processed that was received-before the-priority message;
a main thread that receives messages from at least one computer system and that routes a priority message for the at least one work thread to the at least one work thread; and
(B) computer-readable signal bearing media bearing the computer program. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A program product comprising:
-
(1) a computer program comprising;
(1A) at least one work thread that performs a predefined task that includes at least one synchronization event, wherein the work thread comprises;
(1A1) a response queue that receives messages relating to a currently-executing task;
(1A2) a work queue that receives new tasks to be executed; and
(1A3) a priority queue that receives priority messages;
(1A4) a priority message processing mechanism within the work thread that processes a priority message on the priority queue before processing a next task to be processed that was received before the priority message;
(1B) a main thread that registers with a cluster engine to become a member of a group of jobs that execute on a plurality of computer systems to perform the predefined task, that receives messages from at least one of the plurality of computer systems, and that routes priority messages to at least one of the response queue and the work queue in the at least one work thread depending on the type of the message; and
(2) computer-readable signal bearing media bearing the computer program. - View Dependent Claims (32, 33, 34)
-
Specification