Storage system employing universal timer for peer-to-peer asynchronous maintenance of consistent mirrored storage
First Claim
1. A method for backing up data in a peer-to-peer backup system with multiple primary storage sub-sites each of the primary storage sub-sites having a counterpart secondary storage sub-site, each of the primary and secondary storage sub-sites being in communication with a universal timer, the method comprising:
- each primary sub-site receiving one or more updates, storing the updates at the primary sub-site in an order, and transmitting each update along with a sequence code representing the update'"'"'s order to the counterpart secondary sub-site;
each secondary sub-site receiving updates from its counterpart primary storage sub-site and storing the updates in a secondary journal of the secondary sub-site; and
in response to expiration of a periodic interval of the universal timer,each primary sub-site sending its counterpart secondary sub-site a confirmation message identifying all updates sent in the expired interval;
each secondary sub-site checking for receipt of the confirmation message;
if confirmation messages were received by all secondary sub-sites, each secondary sub-site checking its secondary journal for presence of all updates identified by the confirmation message received by that secondary sub-site, and if each secondary journal contains all identified updates, each secondary sub-site committing the journaled updates to storage of the secondary sub-site.
1 Assignment
0 Petitions
Accused Products
Abstract
A data storage system employs a universal timer to perform asynchronous peer-to-peer data mirroring, where primary and secondary controllers cooperatively perform periodic consistency checks according to the universal timer. The system includes multiple primary storage controllers each having a counterpart secondary controller. Primary and secondary controllers access a universal timer, such as a global positioning system (GPS). Each primary controller receives updates, and stores the updates in an order, providing each update with a sequence code according to its storage order. Each primary controller also transmits the updates and corresponding sequence codes to its secondary controller. Each secondary controller receives updates from its counterpart primary storage controller and stores the updates in a journal. Whenever a periodic timer interval of the universal timer expires, several things happen. Each primary controller sends its counterpart secondary controller a confirmation message useful in identifying all updates that were sent in the expired interval. Also, each secondary controller checks for receipt of the confirmation message, and if received, the secondary controller checks the journal for presence of all updates identified by the confirmation message. If each secondary controller finds all identified updates in its journal, all secondary controllers proceed to commit the journaled updates to secondary storage.
217 Citations
22 Claims
-
1. A method for backing up data in a peer-to-peer backup system with multiple primary storage sub-sites each of the primary storage sub-sites having a counterpart secondary storage sub-site, each of the primary and secondary storage sub-sites being in communication with a universal timer, the method comprising:
-
each primary sub-site receiving one or more updates, storing the updates at the primary sub-site in an order, and transmitting each update along with a sequence code representing the update'"'"'s order to the counterpart secondary sub-site; each secondary sub-site receiving updates from its counterpart primary storage sub-site and storing the updates in a secondary journal of the secondary sub-site; and in response to expiration of a periodic interval of the universal timer, each primary sub-site sending its counterpart secondary sub-site a confirmation message identifying all updates sent in the expired interval; each secondary sub-site checking for receipt of the confirmation message; if confirmation messages were received by all secondary sub-sites, each secondary sub-site checking its secondary journal for presence of all updates identified by the confirmation message received by that secondary sub-site, and if each secondary journal contains all identified updates, each secondary sub-site committing the journaled updates to storage of the secondary sub-site. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for backing up data in data storage system including multiple primary storage controllers each of the primary storage controllers coupled to one or more primary storage devices, each primary storage controller having a counterpart secondary storage controller coupled to one or more secondary storage devices, one or more communication links between each primary storage controller and its corresponding secondary storage controller, each of the primary and secondary storage controllers being coupled to a universal timer, the method comprising:
-
each primary storage controller receiving one or more updates, storing the updates at the primary storage devices coupled to the primary storage controller in an order, and transmitting each update along with a sequence code representing the update'"'"'s order to the counterpart secondary controller; each secondary controller receiving updates from its counterpart primary controller and storing the updates in a buffer accessible by the secondary controller; and in response to expiration of a periodic interval of the universal timer, each primary controller sending its counterpart secondary controller a confirmation message identifying all updates sent in the expired interval; each secondary controller checking for receipt of the confirmation message, and if the confirmation messages have been received by all secondary controllers, each secondary controller checking its buffer for presence of all updates identified by the confirmation message, and if all updates in all buffers are present, committing the buffered updates to the secondary storage devices.
-
-
9. A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a method for backing up data in a peer-to-peer backup system with multiple primary storage sub-sites each of the primary storage sub-sites having a counterpart secondary storage sub-site, each of the primary and secondary storage sub-sites being in communication with a universal timer where each primary sub-site receives one or more updates, stores the updates at the primary sub-site in an order, and transmits each update along with a sequence code representing the update'"'"'s order to the counterpart secondary sub-site, the method being performed by each secondary sub-site and comprising:
-
each secondary sub-site receiving the updates and sequence codes transmitted by its counterpart primary storage sub-site, and storing the updates in a second journal of the secondary sub-site; and in response to expiration of a periodic interval of the universal timer, each secondary sub-site checking for receipt of a confirmation message sent by its counterpart primary sub-site, the confirmation message identifying all updates sent in the expired interval; and if confirmation messages were received by all secondary sub-sites, each secondary sub-site checking its secondary journal for presence of all updates identified by the confirmation message received by that secondary sub-site, and if each journal contains identified all updates, each secondary sub-site committing the journaled updates to storage, the secondary sub-site. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A data storage system, comprising:
-
multiple primary storage sub-sites, each primary storage sub-site including a primary data storage and a primary controller; for each primary storage sub-site, a counterpart secondary storage sub-site, each secondary storage sub-site including a secondary data storage, a secondary journal, and a secondary controller; one or more communications links interconnecting each primary storage sub-site to its counterpart secondary sub-site; one or more communications links interconnecting the secondary storage sub-sites; and a universal timer providing a common time reference signal to all of the primary and secondary storage sub-sites; where the primary and secondary sub-sites are programmed to perform a method to backup data comprising; each primary controller receiving one or more updates, storing the updates at the primary storage in an order, and transmitting each update along with a sequence code representing the update'"'"'s order to the counterpart secondary controller; each secondary controller receiving updates from its counterpart primary controller and storing the updates in its secondary journal; and in response to expiration of a periodic interval of the universal timer, each primary controller sending its counterpart secondary controller a confirmation message identifying all updates sent in the expired interval; each secondary controller checking for receipt of the confirmation message; if confirmation messages were received by all secondary sub-sites, each secondary controller checking its secondary journal for presence of all updates identified by the confirmation message received by that secondary controller, and if each secondary journal contains all updates, each secondary sub-site committing the journaled updates to its secondary storage. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
Specification