Storage system
First Claim
1. A data storage system comprising:
- one or more computer systems configured to execute program instructions, wherein the program instructions are executable to;
receive a data object for storage from a remote storage agent;
assign a first identifier to the data object, wherein the first identifier specifies an endpoint container in which to store the data object;
assign a second identifier to the data object, wherein the second identifier specifies a location of the data object within the endpoint container;
determine whether the second identifier exceeds a predetermined value, wherein said second identifier exceeds the predetermined value at least once during execution of said instructions;
in response to determining the second identifier does not exceed the predetermined value;
store the data object in the endpoint container at a location identified by the second identifier;
store a storage location record including the second identifier and the first identifier indicating where the data object is stored; and
increment the second identifier, thereby creating a new second identifier;
in response to determining the second identifier does exceed the predetermined value;
reset the second identifier to an initial value, thereby creating a reset second identifier;
assign the second identifier with the reset value to the data object;
increment the first identifier and create a new endpoint container which is identified by the incremented first identifier;
store the data object in the new endpoint container at a location identified by the reset second identifier;
store a storage location record including the reset second identifier and the incremented first identifier indicating where the data object is stored; and
increment the reset second identifier.
9 Assignments
0 Petitions
Accused Products
Abstract
The present invention can provide an OS independent system for storing data within a storage system. The invention can provide a directory system which is designed dynamically to adapt based upon the caching memory available for searching directories. Received files can be stored in a current directory until a predetermined limit is reached. In parallel, a database can be created to record which files are stored in which directory. This database can be designed to be kept in physical memory to minimize file access latency. This arrangement provides that a data storage system can store data in a simple order of receipt manner while also managing the storage structure to limit the number of data objects in any given container, thus preventing a search function analysing any given container from needing to access an excessive number of data objects and thus slow down the search to an unacceptable level.
121 Citations
17 Claims
-
1. A data storage system comprising:
one or more computer systems configured to execute program instructions, wherein the program instructions are executable to; receive a data object for storage from a remote storage agent; assign a first identifier to the data object, wherein the first identifier specifies an endpoint container in which to store the data object; assign a second identifier to the data object, wherein the second identifier specifies a location of the data object within the endpoint container; determine whether the second identifier exceeds a predetermined value, wherein said second identifier exceeds the predetermined value at least once during execution of said instructions; in response to determining the second identifier does not exceed the predetermined value; store the data object in the endpoint container at a location identified by the second identifier; store a storage location record including the second identifier and the first identifier indicating where the data object is stored; and increment the second identifier, thereby creating a new second identifier; in response to determining the second identifier does exceed the predetermined value; reset the second identifier to an initial value, thereby creating a reset second identifier; assign the second identifier with the reset value to the data object; increment the first identifier and create a new endpoint container which is identified by the incremented first identifier; store the data object in the new endpoint container at a location identified by the reset second identifier; store a storage location record including the reset second identifier and the incremented first identifier indicating where the data object is stored; and increment the reset second identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
12. A method of storing data received at a data storage system, the method comprising:
-
receiving a data object for storage from a remote storage agent; assigning a first identifier to the data object, wherein the first identifier specifies an endpoint container in which to store the data object; assigning a second identifier to the data object, wherein the second identifier specifies a location of the data object within the endpoint container; determining whether the second identifier exceeds a predetermined value, wherein said second identifier exceeds the predetermined value at least once during operation; in response to determining the second identifier does not exceed the predetermined value; storing the data object in the endpoint container at a location identified by the second identifier; storing a storage location record including the second identifier and the first identifier indicating where the data object is stored; and incrementing the second identifier, thereby creating a new second identifier; in response to determining the second identifier does exceed the predetermined value; resetting the second identifier to an initial value, thereby creating a reset second identifier; assigning the second identifier with the reset value to the data object; incrementing the first identifier and creating a new endpoint container which is identified by the incremented first identifier; storing the data object in the new endpoint container at a location identified by the reset second identifier; storing a storage location record including the reset second identifier and the incremented first identifier indicating where the data object is stored; and incrementing the reset second identifier. - View Dependent Claims (13, 14)
-
-
15. A computer-readable storage medium storing program instructions executable to:
-
receive a data object for storage from a remote storage agent; assign a first identifier to the data object, wherein the first identifier specifies an endpoint container in which to store the data object; assign a second identifier to the data object, wherein the second identifier specifies a location of the data object within the endpoint container; determine whether the second identifier exceeds a predetermined value, wherein said second identifier exceeds the predetermined value at least once during execution of said instructions; in response to determining the second identifier does not exceed the predetermined value; store the data object in the endpoint container at a location identified by the second identifier; store a storage location record including the second identifier and the first identifier indicating where the data object is stored; and increment the second identifier, thereby creating a new second identifier; in response to determining the second identifier does exceed the predetermined value; reset the second identifier to an initial value, thereby creating a reset second identifier; assign the second identifier with the reset value to the data object; increment the first identifier and create a new endpoint container which is identified by the incremented first identifier; store the data object in the new endpoint container at a location identified by the reset second identifier; store a storage location record including the reset second identifier and the incremented first identifier indicating where the data object is stored; and increment the reset second identifier. - View Dependent Claims (16, 17)
-
Specification