Method for handling large object files in an object storage system
First Claim
1. 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; and
evaluating, by one or more processors, 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 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;
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.
4 Assignments
0 Petitions
Accused Products
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.
62 Citations
20 Claims
-
1. 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; and evaluating, by one or more processors, 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 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; 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. 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 object segments; and responding to the request with object data from the one or more of the computer readable information object segments; wherein if the requested object data corresponds to less than all the data from the first data source, the step of responding to the request with object data further includes retrieving the object segments corresponding only to the requested object data and returning the requested data; and wherein if the requested object data corresponds to all the data from the first data source, the step of responding to the request with object data further includes the steps of receiving a manifest file describing the relationships of the object segments to the first data source; and
reconstituting the requested object data from the plurality of object segments. - View Dependent Claims (17, 18, 19)
-
-
20. A system for storing a file, comprising:
-
a storage management server, the storage management server further comprising a processor, a file storage module, and a file retrieval module; at least one computer-readable store coupled to the storage management server; wherein the file storage module further includes a file segmenter, a manifest generator, and a storage writer; wherein the file segmenter receives a first data file for storage and segments the first data file into a plurality of segment data files, each segment data file corresponding to a portion of the first data file; the manifest generator records the relationship of the plurality of segmented data files to the first data file in a manifest; and the file writer stores the manifest and each segment data file to the computer-readable store as a separate file object; wherein the file retrieval module further includes a file reader and a file desegmenter; wherein the file reader retrieves the manifest and the plurality of segment data files from the computer-readable store and provides them to the file desegmenter; and the file desegmenter reconstitute reconstitutes the first data file using the provided manifest and segmented data files.
-
Specification