IP Library Granted Patent US 8,533,478
Granted Patent B2
US 8,533,478 · App. 12/258,273 · Granted Sep 10, 2013

System for and method of writing and reading redundant data

Inventors: Marcos K. Aguilera (Mountain View, CA); Ram Swaminathan (Cupertino, CA)
Assignee: Hewlett-Packard Development Company, L. P.
H04L9/3281H04L9/3294
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,533,478
App. No.
12/258,273
Filed
Oct 24, 2008
Granted
Sep 10, 2013
Kind
B2
Art Unit
2493
USPC
713/176
Abstract

In accordance with an embodiment of the invention, a method of writing and reading redundant data is provided. Data is written by storing a copy of the data along with a timestamp and a signature at each of a set of storage devices. The data is read by retrieving the copy of the data, the timestamp and the signature from each of a plurality of the set of data storage devices. One of the copies of the data is selected to be provided to a requestor of the data. Each of the storage devices of the set is requested to certify the selected copy of the data. Provided that a proof of certification of the selected copy of the data is valid, the storage devices of the set are instructed to store the selected copy of the data along with a new timestamp.

Claims (27)

1. A method of writing and reading redundant data comprising:

writing data by storing a copy of the data, along with a timestamp that includes a signature on the copy of the data and on the timestamp, at each of a set of storage devices;

reading the data by retrieving the copy of the data, the timestamp, and the signature from each of the set of data storage devices and selecting one of the copies of the data to be provided to a requestor of the data;

requesting each of the storage devices of the set to certify the selected copy of the data, wherein to certify the selected copy of the data includes each of the storage devices of the set verifying that a coordinator device selected the data having a most-recent timestamp and wherein to certify the selected copy includes confirming that each copy of the data includes a signature from a different data storage device of the set of data storage devices; and

provided that a proof of certification of the selected copy of the data is valid, instructing the storage devices of the set to store the selected copy of the data along with a new timestamp.

2. The method according to claim 1 , wherein said instructing the storage devices of the set to store the selected copy of the data along with the new timestamp does not store a new signature in connection with the data.

3. The method according to claim 1 , wherein said selecting one of the copies of the data to be provided to the requestor of the data comprises selecting, from among those that are valid, a copy of the data having a highest one of the timestamps retrieved from each of the plurality of the set of data storage devices.

4. The method according to claim 3 , wherein the proof of certification comprises a vector of the signatures.

5. The method according to claim 4 , wherein each of the storage devices of the set certify the selected copy of the data using the vector of signatures for the data to prove correctness of the selected copy of the data.

6. The method according to claim 3 , wherein the storage devices of the set store the proof of certification along with the selected copy of the data.

7. The method according to claim 1 , wherein said instructing the storage devices of the set to store the selected copy of the data along with a new timestamp further comprises instructing the storage devices of the set to store the selected copy of the data along with the timestamp associated with the writing of the data.

8. The method according to claim 7 , wherein a new timestamp is stored in association with the data each time the data is read.

9. The method according to claim 7 , wherein said selecting one of the copies of the data to be provided to a requestor of the data is performed based on the timestamp associated with the writing of the data and the new timestamp.

10. The method according to claim 1 , wherein said selecting one of the copies of the data to be provided to a requestor of the data comprises ordering the copies of the data according to the timestamp of each, discarding a number of highest timestamps and selecting the copy of the data having the highest remaining timestamp from among those that are valid.

11. The method according to claim 1 , wherein said selecting one of the copies of the data to be provided to a requestor of the data comprises discarding copies of the data stored at less than a determined number of the storage devices, and among the remaining copies of the data, selecting the one having the highest timestamp from among those that are valid.

12. The method according to claim 1 , wherein writing the data and reading the data are initiated by one or more client devices coupled to the storage devices.

13. The method according to claim 12 , wherein the coordinator device communicates with the one or more client devices and the storage devices for performing the steps of the method.

14. The method according to claim 13 , wherein the coordinator device is one of the storage devices of the set of storage devices.

15. The method according to claim 1 , wherein the client device initiates the step of writing and wherein the client device generates the signature.

16. The method according to claim 15 , wherein the requestor of the data is a second client device and wherein the second client device generates the new timestamp.

17. The method according to claim 15 , wherein the client device generates the timestamp.

18. The method according to claim 15 , wherein the client device generates the signature by applying a cryptographic key to the data and the timestamp.

19. A non-transitory computer readable medium having stored thereon computer code which, when executed, implements a method of writing and reading redundant data comprising:

writing data by storing a copy of the data along with a timestamp that includes a signature on the copy of the data and on the timestamp, at each of a set of storage devices;

reading the data by retrieving the copy of the data, the timestamp and the signature from each of the set of data storage devices and selecting one of the copies of the data to be provided to a requestor of the data;

requesting each of the storage devices of the set to certify the selected copy of the data, wherein to certify the selected copy of the data includes each of the storage devices of the set verifying that a coordinator device selected the data having a most-recent timestamp and wherein to certify the selected copy includes confirming that each copy of the data includes a signature from a different data storage device of the set of data storage devices; and

provided that a proof of certification of the selected copy of the data is valid, instructing the storage devices of the set to store the selected copy of the data along with a new timestamp.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2009
From: AGUILERA, MARCOS K; SWAMINATHAN, RAM
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 023103/0532 →
Continuity (1)
Related Publication 20100106974A1 · Apr 29, 2010