Apparatus and method for communicating between computer systems using a sliding send window for ordered messages in a clustered computing environment
First Claim
1. An apparatus comprising:
- at least one processor;
a memory coupled to the at least one processor;
a network interface that couples the apparatus to a network that is coupled to a plurality of other computer systems and wherein the apparatus and the plurality of other computer systems form a cluster of computers that cooperate via ordered messages to perform a task; and
a cluster communication mechanism residing in the memory and executed by the at least one processor, the cluster communication mechanism including a sliding send window that communicates at least one ordered message to a plurality of the other computer systems without waiting for an acknowledge message from any of the plurality of other computer systems before sending out the next ordered message, and wherein each ordered message includes a header with information that indicates whether an acknowledge message for the ordered messages may be delayed and grouped with at least one subsequent acknowledge message, and the cluster communication mechanism enforces execution order of a plurality of received messages to perform the task;
wherein the cluster communication mechanism sends a null message forcing acknowledges to pending messages to be sent by the plurality of other computer systems when the cluster communication mechanism changes to a new destination for sending subsequent messages.
1 Assignment
0 Petitions
Accused Products
Abstract
A clustered computer system includes multiple computer systems (or nodes) coupled together via one or more networks that can become members of a group to work on a particular task. Each node includes a cluster engine, a cluster communication mechanism that includes a sliding send window, and one or more service tasks that process messages. The sliding send window allows a node to send out multiple messages without waiting for an individual acknowledgment to each message. The sliding send window also allows a node that received the multiple messages to send a single acknowledge message for multiple received messages. By using a sliding send window to communicate with other computer systems in the cluster, the communication traffic in the cluster is greatly reduced, thereby enhancing the overall performance of the cluster. In addition, the latency between multiple messages sent concurrently is dramatically reduced.
-
Citations
15 Claims
-
1. An apparatus comprising:
-
at least one processor; a memory coupled to the at least one processor; a network interface that couples the apparatus to a network that is coupled to a plurality of other computer systems and wherein the apparatus and the plurality of other computer systems form a cluster of computers that cooperate via ordered messages to perform a task; and a cluster communication mechanism residing in the memory and executed by the at least one processor, the cluster communication mechanism including a sliding send window that communicates at least one ordered message to a plurality of the other computer systems without waiting for an acknowledge message from any of the plurality of other computer systems before sending out the next ordered message, and wherein each ordered message includes a header with information that indicates whether an acknowledge message for the ordered messages may be delayed and grouped with at least one subsequent acknowledge message, and the cluster communication mechanism enforces execution order of a plurality of received messages to perform the task; wherein the cluster communication mechanism sends a null message forcing acknowledges to pending messages to be sent by the plurality of other computer systems when the cluster communication mechanism changes to a new destination for sending subsequent messages. - View Dependent Claims (2, 9)
-
-
3. A networked computer system comprising:
-
a cluster of computer systems that cooperate via ordered messages to perform a task wherein each computer system includes; a network interface that couples each computer system via a network to other computer systems in the cluster; a memory; and a cluster communication mechanism residing in the memory, the cluster communication mechanism enforcing execution order of a plurality of received messages to perform the task, the cluster communication mechanism including a sliding send window that communicates at least one ordered message to a plurality of other computer systems without waiting for an acknowledgment from any of the plurality of other computer systems before sending out the next ordered message; wherein the cluster communication mechanism sends a null message forcing acknowledges to pending messages to be sent by the plurality of other computer systems when the cluster communication mechanism changes to a new destination for sending subsequent messages.
-
-
4. A computer-implemented method for processing a task in a clustered computing environment, the method comprising the steps of:
-
providing a cluster communication mechanism executing on a first computer system in a cluster wherein the computers in the cluster cooperate via ordered messages to perform the task and wherein the cluster communications mechanism includes a sliding send window that communicates at least one ordered message to a plurality of other computer systems in the cluster without waiting for an acknowledgment from each computer system in the cluster that received an ordered message before sending out the next ordered message, and wherein the cluster communication mechanism enforces execution order of a plurality of received messages to perform the task; the cluster communication mechanism sending a first ordered message to a first plurality of other computer systems in the cluster; and the cluster communication mechanism sending a second ordered message to a second plurality of other computer systems in the cluster without waiting for a response to the first ordered message from each of the first plurality of other computer systems in the cluster; wherein the cluster communication mechanism sends a null message forcing acknowledges to pending messages to be sent by the plurality of other computer systems when the cluster communication mechanism changes to a new destination for sending subsequent messages. - View Dependent Claims (5, 6, 10, 11, 12, 14)
-
-
7. A program product comprising:
-
(A) a computer program comprising; (A1) a cluster communication mechanism that includes a sliding send window that communicates at least one ordered message to a plurality of other computer systems in a cluster computer system that cooperate via ordered messages to perform a task without waiting for an acknowledgment from any of the plurality of other computer systems before sending out the next ordered message, and wherein the cluster communication mechanism enforces execution of a plurality of received messages to perform the task, wherein the cluster communication mechanism sends a null message forcing acknowledges to pending messages to be sent by the plurality of other computer systems when the cluster communication mechanism changes to a new destination for sending subsequent messages; and (B) recordable media bearing the computer program. - View Dependent Claims (8, 13, 15)
-
Specification