Message batching with checkpoints systems and methods
First Claim
1. A distributed system comprising:
- a first storage unit comprising at least one processor;
a second storage unit in communication with the first storage unit, the second storage unit comprising at least one processor;
wherein the at least one processor of the first storage unit is configured to;
group messages together into a batch that may be operated on as a whole, each message comprising a command;
send the messages to the second storage unit and allow the second storage unit to control the order in which commands in the messages are executed;
send a checkpoint message to the second storage unit, the checkpoint message comprising a checkpoint; and
send a collect message to the second storage unit requesting a result of executing any commands in the messages; and
wherein the at least one processor of the second storage unit is configured to;
receive the messages from the first storage unit;
receive a checkpoint message;
detect the checkpoint;
when the checkpoint is detected, asynchronously execute to completion the unexecuted commands in the messages of the batch received prior to receipt of the checkpoint message before beginning execution of commands in the messages of the batch received after receipt of the checkpoint message, wherein the unexecuted messages of the batch received prior to receipt of the checkpoint message do not include a checkpoint and the commands in the messages of the batch can be executed without first sending a response and waiting for a next message to arrive; and
return a response message to a collect message received from the first storage unit, the response message comprising the results of two or more commands in the messages, the two or more commands having completed execution after receipt of any previous collect message.
12 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are provided for passing control of message dependencies and ordering to one or more network nodes participating in a transaction. Thus, messages can be sent to the participating nodes and the participating nodes can handle the messages according to their respective dependencies without first sending a response or waiting for the next message to arrive. In one embodiment, at least one message is flagged with a checkpoint to indicate that messages sent before the checkpoint are to be handled by the participating nodes before messages after the checkpoint. Messages may also be flagged with error-handling information. For example, a message may be marked to indicate that if the message fails, no further messages are to be sent to the node had the failure. Responses to a group of messages can be collected in a single operation.
-
Citations
12 Claims
-
1. A distributed system comprising:
-
a first storage unit comprising at least one processor; a second storage unit in communication with the first storage unit, the second storage unit comprising at least one processor; wherein the at least one processor of the first storage unit is configured to; group messages together into a batch that may be operated on as a whole, each message comprising a command; send the messages to the second storage unit and allow the second storage unit to control the order in which commands in the messages are executed; send a checkpoint message to the second storage unit, the checkpoint message comprising a checkpoint; and send a collect message to the second storage unit requesting a result of executing any commands in the messages; and wherein the at least one processor of the second storage unit is configured to; receive the messages from the first storage unit; receive a checkpoint message; detect the checkpoint; when the checkpoint is detected, asynchronously execute to completion the unexecuted commands in the messages of the batch received prior to receipt of the checkpoint message before beginning execution of commands in the messages of the batch received after receipt of the checkpoint message, wherein the unexecuted messages of the batch received prior to receipt of the checkpoint message do not include a checkpoint and the commands in the messages of the batch can be executed without first sending a response and waiting for a next message to arrive; and return a response message to a collect message received from the first storage unit, the response message comprising the results of two or more commands in the messages, the two or more commands having completed execution after receipt of any previous collect message. - View Dependent Claims (2, 3, 4)
-
-
5. A method for coordinating transactions performed by participating nodes in a network, the method comprising:
-
grouping messages together into a batch, the grouping performed by a first processor of a first node, each message comprising a command; sending each of a first set of messages of the batch from the first node to a second node and allowing the second node to control the order in which commands in the first set of messages are executed, the second node comprising a second processor; sending a checkpoint message from the first node to the second node, the checkpoint message comprising a checkpoint; after sending the checkpoint message, sending each of a second set of messages of the batch from the first node to the second node; sending a collect message from the first node to the second node after sending each of the first set of messages and the checkpoint message, the first set of messages comprising two or more messages of the batch, the collect message requesting at least an indication that the commands in the first set of messages were executed; receiving each of the first set of messages from the first node at the second node; receiving the checkpoint message from the first node at the second node; detecting the checkpoint, the detection performed by the second processor; receiving each of the second set of messages from the first node at the second node; when the checkpoint is detected, asynchronously executing to completion the unexecuted commands in the first set of messages before beginning execution of commands in the second set of messages, wherein the first set of messages does not include a checkpoint; and sending a response to the collect message from the second node to the first node, the response comprising at least an indication that the commands in each of the two or more messages in the first set of messages were executed, the two or more messages having completed execution after receipt of any previous collect message. - View Dependent Claims (6, 7, 8, 9)
-
-
10. A message participant system comprising:
-
a plurality of nodes, each node configured to; receive a plurality of first messages, wherein each of the first messages may comprise a command and the node controls the order in which commands in the plurality of first messages are executed; receive a last message, wherein the last message comprises one or more commands and a checkpoint, the checkpoint indicating that any commands in the plurality of first messages should execute before any command in the last message; execute the unexecuted commands in the plurality of first messages substantially in parallel; after the commands in the plurality of first messages have completed execution, execute any commands in the last message; receive a collect message after receiving each of the first messages and the last message, the collect message requesting at least an indication that the commands in the first set of messages and the commands in the last message were executed; and respond to the collect message, the response comprising at least an indication that the commands in the first set of messages and the commands in the last message were executed, the first set of messages and the last message having completed execution after receipt of any previous collect message; wherein the plurality of first messages does not include a checkpoint. - View Dependent Claims (11, 12)
-
Specification