US2015261801A1PendingUtilityA1

Method for handling large object files in an object storage system

Assignee: RACKSPACE US INCPriority: Mar 8, 2011Filed: Mar 23, 2015Published: Sep 17, 2015
Est. expiryMar 8, 2031(~4.6 yrs left)· nominal 20-yr term from priority
G06F 16/1744G06F 16/2365G06F 16/1748H04L 67/06G06F 16/27H04L 65/403H04L 67/1095H04L 69/04G06F 16/951H04L 43/106G06F 3/0619G06F 11/2097G06F 2201/85G06F 16/178G06F 3/0626G06F 3/0644G06F 11/1004H04L 67/1097G06F 16/9566G06F 16/2219G06F 3/067G06F 3/065G06F 17/30371G06F 17/30864G06F 17/30318H04L 67/5651G06F 16/273
59
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Several different embodiments of a segmented object storage system are described. The object storage system divides files into a number of object segments, each segment corresponding to a portion of the object, and stores each segment individually in the cloud storage system. The system also generates and stores a manifest file describing the relationship of the various segments to the original data file. Requests to retrieve the segmented file are fulfilled by consulting the manifest file and using the information from the manifest to reconstitute the original data file from the constituent segments. Modifying, appending to, or truncating the object is accomplished by manipulating individual segments and the manifest file. In further embodiments, manipulation of the individual object segments and/or the manifest is used to implement copy-on-write, snapshotting, software transactional memory, and peer-to-peer transmission of the large file.

Claims

exact text as granted — not AI-modified
1 . (canceled) 
     
     
         2 . A method for providing object data from a cloud storage system, the method comprising:
 storing each of a plurality of computer readable information object segments individually, wherein each of the plurality of computer readable information object segments correspond to a portion of the data from a first data source;   receiving a computer readable request to download object data corresponding to one or more of the computer readable information object segments;   determining whether the object data corresponds to all the data from the first data source;   receiving a manifest file describing the relationships of the computer readable information object segments to the first data source;   reconstituting the requested object data from the plurality of computer readable information object segments; and   responding to the request with the reconstituted object data from the one or more of the computer readable information object segments.   
     
     
         3 . The method of  claim 2 , further comprising:
 performing a checksum on the reconstituted object data; and   comparing the result of the checksum against data verification results included in the manifest file, prior to responding to the request with the reconstituted object data.   
     
     
         4 . The method of  claim 2 , wherein reconstituting the requested object data from the plurality of object segments further includes retrieving the plurality of computer readable information object segments from one or more locations in a file storage system identified by the manifest file. 
     
     
         5 . The method of  claim 2 , wherein reconstituting the requested object data from the plurality of object segments further includes placing the plurality of computer readable information object segments in an order identified by the manifest file. 
     
     
         6 . The method of  claim 2 , wherein reconstituting the requested object data from the plurality of object segments further includes performing an error correction operation for one or more of the plurality of computer readable information object segments, using error correction information stored in the manifest file. 
     
     
         7 . A method for storing object data in a cloud storage system, the method comprising:
 receiving, by one or more processors, a request to store a computer readable information object in network-accessible storage;   receiving, by one or more processors, a first data range associated with the computer readable information object;   determining, by one or more processors, that a size of the computer readable information object exceeds a predetermined size; and   evaluating, by one or more processors, whether to segment the computer readable information object, based at least on the determination that the size of the computer readable information object exceeds the predetermined size;   
       wherein, based on the evaluating, if the computer readable information object is to be segmented, further performing using one or more processors:
 segmenting the computer readable information object into a plurality of object segments, each segment corresponding to a portion of the computer readable information object; 
 generating a filename for each of the plurality of object segments, wherein each respective filename identifies the computer readable information object; 
 storing each of the plurality of object segments individually in network-accessible storage; 
 generating a manifest file related to the plurality of object segments; and 
 storing the manifest file in computer readable storage; 
 
       wherein the manifest file allows the plurality of object segments to be retrieved from network-accessible storage and to be reconstituted into a data range equal to the first data range; and 
       wherein if, based on the evaluating, the computer readable information object is not to be segmented, storing, by one or more processors, the first data range associated with the computer readable information object in network-accessible storage. 
     
     
         8 . The method of  claim 7 , further comprising:
 receiving, by one or more processors, a request to modify an object segment in the plurality of object segments, wherein the request includes a filename for the object segment in the plurality of object segments;   receiving, by one or more processors, the modification to the object segment in the plurality of object segments; and   updating, by one or more processors, the manifest file related to the plurality of object segments, based on the modification.   
     
     
         9 . The method of  claim 7 , wherein evaluating whether to segment the computer readable information object includes the step of examining the request for an indicia that the object should be segmented. 
     
     
         10 . The method of  claim 7 , wherein evaluating whether to segment the computer readable information object includes determining a file type of the computer readable information object, and wherein segmenting the computer readable information object into a plurality of object segments is performed based on the determined file type of the computer readable information object. 
     
     
         11 . The method of  claim 7 , wherein the filename further includes an identification of a respective object segment relative to other object segments segmented from the computer readable information object. 
     
     
         12 . The method of  claim 7 , wherein the manifest file further includes one or more filenames for each of the plurality of object segments. 
     
     
         13 . The method of  claim 7 , wherein segmenting the computer readable information object is performed before the data corresponding to the object is received. 
     
     
         14 . The method of  claim 7 , wherein the step of segmenting the computer readable information object occurs as the data corresponding to the computer readable information object is received. 
     
     
         15 . The method of  claim 7 , wherein the generated manifest file is individually addressable and manipulable. 
     
     
         16 . A non-transitory computer-readable storage medium storing program instructions that when executed by a processor cause the processor to implement a method for storing object data in a cloud storage system, the method comprising:
 receiving a request to store a computer readable information object in network-accessible storage;   receiving a first data range associated with the computer readable information object;   determining that a size of the computer readable information object exceeds a predetermined size; and   evaluating whether to segment the computer readable information object;   
       wherein, based on the evaluating, if the computer readable information object is to be segmented, further performing:
 segmenting the computer readable information object into a plurality of object segments, each segment corresponding to a portion of the computer readable information object; 
 generating a filename for each of the plurality of object segments, wherein each respective filename identifies the computer readable information object; 
 storing each of the plurality of object segments individually in network-accessible storage; 
 generating a manifest file related to the plurality of object segments; and 
 storing the manifest file in computer readable storage; 
 
       wherein the manifest file allows the plurality of object segments to be retrieved from network-accessible storage and to be reconstituted into a data range equal to the first data range; and 
       wherein if, based on the evaluating, the computer readable information object is not to be segmented, storing the first data range associated with the computer readable information object in network-accessible storage. 
     
     
         17 . The computer-readable storage medium of  claim 16 , the method further comprising:
 receiving a request to modify an object segment in the plurality of object segments, wherein the request includes a filename for the object segment in the plurality of object segments;   receiving the modification to the object segment in the plurality of object segments; and   updating the manifest file related to the plurality of object segments, based on the modification.   
     
     
         18 . The computer-readable storage medium of  claim 16 , wherein evaluating whether to segment the computer readable information object includes the step of examining the request for an indicia that the object should be segmented. 
     
     
         19 . The computer-readable storage medium of  claim 16 , wherein the filename further includes an identification of a respective object segment relative to other object segments segmented from the computer readable information object. 
     
     
         20 . The computer-readable storage medium of  claim 16 , wherein the manifest file further includes one or more filenames for each of the plurality of object segments. 
     
     
         21 . The computer-readable storage medium of  claim 16 , wherein the generated manifest file is individually addressable and manipulable.

Join the waitlist — get patent alerts

Track US2015261801A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.