Efficient data storage system
First Claim
Patent Images
1. A system for storing data comprising:
- an interface for receiving a data stream comprising a first plurality of data segments;
a low latency memory for storing a second plurality of data segments;
a processor configured to;
generate a segment information for a segment of the first plurality of data segments, wherein the segment information includes a digital signature generated based at least in part on a content of the segment of the first plurality of data segments, wherein the digital signature is a Rabin fingerprint;
determine that one of the first plurality of data segments has been stored previously in the low latency memory as one of the second plurality of data segments;
in the event that the one of the first plurality of data segments is determined to have been stored previously, returning an identifier of one of the second plurality of data segments;
in the event that one of the first plurality of data segments is not determined to have been stored, confirming whether the data segment has been stored; and
in the event that one of the first plurality of data segments is confirmed to not have been stored, storing the data segment.
11 Assignments
0 Petitions
Accused Products
Abstract
A system and method are disclosed for providing efficient data storage. A plurality of data segments is received in a data stream. The system determines whether a data segment has been stored previously in a low latency memory. In the event that the data segment is determined to have been stored previously, an identifier for the previously stored data segment is returned.
15 Citations
29 Claims
-
1. A system for storing data comprising:
-
an interface for receiving a data stream comprising a first plurality of data segments;
a low latency memory for storing a second plurality of data segments;
a processor configured to;generate a segment information for a segment of the first plurality of data segments, wherein the segment information includes a digital signature generated based at least in part on a content of the segment of the first plurality of data segments, wherein the digital signature is a Rabin fingerprint; determine that one of the first plurality of data segments has been stored previously in the low latency memory as one of the second plurality of data segments; in the event that the one of the first plurality of data segments is determined to have been stored previously, returning an identifier of one of the second plurality of data segments; in the event that one of the first plurality of data segments is not determined to have been stored, confirming whether the data segment has been stored; and in the event that one of the first plurality of data segments is confirmed to not have been stored, storing the data segment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer program product for storing data, the computer program product being embodied in a computer readable medium and comprising computer instructions for:
-
receiving a data stream comprising a first plurality of data segments; generating a segment information for the first plurality of data segments, wherein the segment information includes a digital signature generated based at least in part on a content of the segment of the first plurality of data segments, wherein the digital signature is a Rabin fingerprint; determining, using a processor, that one of the first plurality of data segments has been stored previously in a low latency memory as one of a second plurality of data segments; in the event that the one of the first plurality of data segments is determined to have been stored previously, returning an identifier for the one of the second plurality of data segments; in the event that one of the first plurality of data segments is not determined to have been stored, confirming whether the data segment has been stored; and in the event that one of the first plurality of data segments is confirmed to not have been stored, storing the data segment.
-
-
17. A method for storing data comprising:
-
receiving a data stream comprising a first plurality of data segments; generating a segment information for the first plurality of data segments, wherein the segment information includes a digital signature generated based at least in part on a content of the segment of the first plurality of data segments, wherein the digital signature is a Rabin fingerprint; determining, using a processor, that one of the first plurality of data segments has been stored previously in a low latency memory as one of a second plurality of data segments; in the event that the one of the first plurality of data segments is determined to have been stored previously, returning an identifier for the one of the second plurality of data segments; in the event that one of the first plurality of data segments is not determined to have been stored, confirming whether the data segment has been stored; and in the event that one of the first plurality of data segments is confirmed to not have been stored, storing the data segment. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
Specification