Multi-node replication systems, devices and methods
First Claim
1. A method of replicating data in a storage network having at least two nodes, comprising:
- assigning nodes of the network to be owners of data blocks to issue write memory block commands, each data block being owned by one node;
performing a local write of a first data block to an owner node for the first data block, including performing a first process at the owner node and performing a second process at the non-owner nodes in the network;
wherein the first process at the owner node includes;
issuing a write_lock request for the first data block to all nodes in the network;
copying old data for the first data block to a memory location, and issuing a write command to non-owner nodes in the network to write new data for the first data block;
waiting for the acknowledgment from each non-owner node indicating that the non-owner node has written the new data for the first data block;
writing the new data for the first data block to the owner node, and incrementing a version associated with the first data block;
issuing a write_unlock request for the first data block to all nodes on the network; and
performing a write_unlock for the first data block on the owner node; and
wherein the second process at non-owner nodes includes;
receiving the write_lock request for the first data block from the owner node for the first data block;
performing a write_lock for the first data block, and copying old data for the first data block into memory;
writing the new data for the first data block, and incrementing a version number associated with the first data block;
sending the acknowledgment to the owner node; and
performing a write_unlock for the first data block.
16 Assignments
0 Petitions
Accused Products
Abstract
Replication techniques are presented. According to an embodiment of a method, a node of a replicated storage network is assigned to be an owner of a data block to issue write memory block commands. The network includes at least two nodes including the node assigned to be the owner. If a read memory block command is received to read the data block, a read_lock is issued for the data block, the data block is read, and the read_lock for the data block is released. If a write memory block command is received to write new data to the data block, a write_lock is issued for the data block, the data block is written and a version associated with the data block is incremented, and the write_lock for the data block is released.
35 Citations
18 Claims
-
1. A method of replicating data in a storage network having at least two nodes, comprising:
-
assigning nodes of the network to be owners of data blocks to issue write memory block commands, each data block being owned by one node; performing a local write of a first data block to an owner node for the first data block, including performing a first process at the owner node and performing a second process at the non-owner nodes in the network; wherein the first process at the owner node includes; issuing a write_lock request for the first data block to all nodes in the network; copying old data for the first data block to a memory location, and issuing a write command to non-owner nodes in the network to write new data for the first data block; waiting for the acknowledgment from each non-owner node indicating that the non-owner node has written the new data for the first data block; writing the new data for the first data block to the owner node, and incrementing a version associated with the first data block; issuing a write_unlock request for the first data block to all nodes on the network; and performing a write_unlock for the first data block on the owner node; and wherein the second process at non-owner nodes includes; receiving the write_lock request for the first data block from the owner node for the first data block; performing a write_lock for the first data block, and copying old data for the first data block into memory; writing the new data for the first data block, and incrementing a version number associated with the first data block; sending the acknowledgment to the owner node; and performing a write_unlock for the first data block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A multi-node replicated storage network, comprising:
-
at least two network nodes, each network node including; a memory storage device, including replicated storage having a plurality of data blocks stored therein and a version associated with each of the data blocks; a network link interface; and a replication manager to communicate with other network nodes using the network link interface, and the replication manager to communicate with the memory storage device; wherein the replication managers for the at least two network nodes are adapted to; determine node ownership for data blocks to issue write memory block commands, each data block being owned by one node; and write a first data block using a first process at an owner node for the first data block and using a second process at non-owner nodes, wherein the first process at the owner node for the first data block includes; issuing a write_lock request for the first data block to all nodes in the network; copying old data for the first data block to memory, and issuing a write command to non-owner nodes in the network to write new data for the first data block; waiting for the acknowledgment from each non-owner node indicating that the non-owner node has written the new data for the first data block; writing the new data for the first data block to the owner node, and incrementing a version associated with the first data block; issuing a write_unlock request for the first data block to all nodes on the network; and performing a write_unlock for the first data block on the owner node. - View Dependent Claims (16, 17)
-
-
18. A multi-node replicated storage network, comprising:
-
at least two network nodes, each network node including; a memory storage device, including replicated storage having a plurality of data blocks stored therein and a version associated with each of the data blocks; a network link interface; and a replication manager to communicate with other network nodes using the network link interface, and the replication manager to communicate with the memory storage device; wherein the replication managers for the at least two network nodes are adapted to; determine node ownership for data blocks to issue write memory block commands, each data block being owned by one node; and write a first data block using a first process at an owner node for the first data block and using a second process at non-owner nodes, wherein the replication managers for the at least two network nodes are adapted to locally write a second data block to non-owner nodes of the second data block using a third process, including; issuing a write_lock for the second data block and copying old data for the second data block into local memory; sending new data for the second data block to the owner node of the second data block; and if write request is received from the owner node for the second data block, writing the new data for the second data block, and incrementing a version number associated with the second data block, and performing a write_unlock for the second data block.
-
Specification