STORING A VARIABLE NUMBER OF INSTANCES OF DATA OBJECTS
First Claim
1. A method in a data storage system of storing a variable number of instances of data objects, wherein the method is performed by a computing system having a processor and memory, the method comprising:
- accessing a set of data objects stored in a first set of one or more data stores, wherein the set of data objects includes a plurality of data objects that are substantially similar, wherein the plurality includes a number N data objects;
determining, by the computing system, a number X of instances of a first data object of the plurality of data objects that should be stored in a second set of one or more data stores, where X is greater than one and less than N, wherein the intersection of the first and second sets of data stores is empty;
determining a number Y of instances of the first data object that are stored in the second set of one or more data stores, where Y is greater than or equal to zero;
determining if X is greater than Y; and
when X is greater than Y, storing a number Z of instances of the first data object in the second set of one or more data stores, where Z is equal to X minus Y.
4 Assignments
0 Petitions
Accused Products
Abstract
Described are systems and methods for storing a variable number of instances of data objects (e.g., 1, 2, 3, or up to N-1 instances, where N is the number of instances of the data object included in primary data) in secondary storage across a data storage network. In some examples, a system for storing a variable number of instances of data objects includes, one or more computing devices storing a set of data objects and multiple storage devices distinct from the one or more computing devices. Each of the multiple storage devices is configured to store at least a single instance of a data object. The system also includes a database configured to store information associated with the data objects. This information includes substantially unique identifiers for the data objects and, for each of the data objects, a number of instances of the data object stored on the multiple storage devices.
406 Citations
45 Claims
-
1. A method in a data storage system of storing a variable number of instances of data objects, wherein the method is performed by a computing system having a processor and memory, the method comprising:
-
accessing a set of data objects stored in a first set of one or more data stores, wherein the set of data objects includes a plurality of data objects that are substantially similar, wherein the plurality includes a number N data objects; determining, by the computing system, a number X of instances of a first data object of the plurality of data objects that should be stored in a second set of one or more data stores, where X is greater than one and less than N, wherein the intersection of the first and second sets of data stores is empty; determining a number Y of instances of the first data object that are stored in the second set of one or more data stores, where Y is greater than or equal to zero; determining if X is greater than Y; and when X is greater than Y, storing a number Z of instances of the first data object in the second set of one or more data stores, where Z is equal to X minus Y. - View Dependent Claims (2, 3, 4, 5, 6, 10, 11)
-
-
7-9. -9. (canceled)
-
12. A system for storing multiple instances of a data object in a data storage network, wherein the data storage network includes multiple data storage devices coupled via a computer network, and wherein the computer network also couples to one or more computing devices storing a first set of N number of substantially similar data objects, the system comprising:
-
multiple data storage devices storing a second set of data objects, wherein the multiple data storage devices are distinct from, and coupled via the computer network to, the one or more computing devices; a variable instance database configured to store information associated with the second set of data objects, wherein the information includes, for each of the data objects of the second set; a substantially unique identifier for the data object, and a number of instances of the data object in the second set of data objects, wherein at least one of the data objects of the second set has multiple instances in the second set of data objects; a secondary storage computing device configured to; receive an indication to perform a storage operation on the first set of N number of substantially similar data objects, where N is a number greater than 3, determine a substantially unique identifier for each of the N number of substantially similar data objects of the first set; search for the substantially unique identifier in the variable instance database; determine the number of instances of the N number of substantially similar data objects to store in the second set of data objects; and store the determined number of instances of the N number of substantially similar data objects in the second set of data objects. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method in a computing system of storing multiple instances of substantially similar data objects, wherein the method is performed by a computing system having a processor and memory, the method comprising:
-
receiving an indication to perform a storage operation on a first set of data stored by one or more computing devices; and for at least a first data object in the first set of data; determining, by the computing system, a first number of instances of the first data object that should be stored in a second set of data distinct from the first set of data, where the first number is greater than one; generating a substantially unique identifier that represents the first data object; based on the generated substantially unique identifier, determining a second number of instances of the first data object already stored in the second set of data; and when the first number is greater than the second number, storing at least one instance of the first data object in the second set of data. - View Dependent Claims (22, 24, 26, 27, 28)
-
-
23. (canceled)
-
25. (canceled)
-
29. A computing system for storing multiple instances of a data object, the computing system comprising:
-
means for receiving an indication to perform a storage operation on a set of data objects stored by one or more computing devices; means for determining a first number of instances of a first data object in the set of data objects that should be stored on one or more storage devices distinct from the one or more computing devices, wherein the first number is greater than one; means for generating a substantially unique identifier that represents the first data object; means for determining, based on the generated substantially unique identifier, a second number of instances of the first data object stored on the one or more storage devices; and means for storing a third number of instances of the first data object on the one or more storage devices, where the third number is determined with reference to an amount by which the first number exceeds the second number.
-
-
30-38. -38. (canceled)
-
39. A system for storing multiple instances of a data object in a data storage network, wherein the data storage network includes at least two different hierarchical tiers of data storage devices coupled via a computer network, and wherein the computer network also couples to a computing device storing a primary copy of data that includes a first set of N number of the same data objects, the system comprising:
-
multiple data storage devices, wherein each of the multiple storage devices is distinct from, and coupled via the computer network to, the computing device, wherein at least two of the multiple storage devices are arranged into two different hierarchical tiers; a variable instance database configured to store information associated with secondary copies of data that includes a second set of reduced instanced data objects, wherein the information includes, for each of the reduced instanced data objects of the second set; a substantially unique identifier generated for the reduced instanced data object, and a number of instances to store for the reduced instanced data object, wherein at least one of the reduced instanced data objects of the second set has multiple instances stored among the multiple storage devices; a secondary storage computing device configured to; receive an indication to perform a storage operation on the primary copy of data, including the first set of N number of the same data objects, where N is a number greater than 3, wherein the indication specifies that fewer than N instances but greater than one instance of the N number of data objects of the first set are to be stored, and wherein each of the data objects of the first set are to be stored on a distinct one of the multiple storage devices; generate a substantially unique identifier for each of the N number of data objects of the first set; access the variable instance database and for the N number of data objects of the first set, use the generated substantially unique identifier to determine the fewer than N instances but greater than one instance to store for the N number of data objects; and for each one of the N number of data objects of the first set, perform the storage operation on the one data object, wherein performing the storage operation includes storing the fewer than N instances but greater than one instance of the data object on the multiple storage devices. - View Dependent Claims (40, 42, 44)
-
-
41. (canceled)
-
43. (canceled)
-
45. (canceled)
Specification