Appending to files via server-side chunking and manifest manipulation
First Claim
1. A method for modifying object data in a cloud storage system, the method comprising:
- storing, using one or more processors, a segmented file as a plurality of individually stored object segments and a manifest, wherein each of the plurality of individually stored object segments corresponds to a portion of data in the segmented file, and wherein the manifest describes the relationship of the plurality of individually stored object segments to the segmented file sufficient to reconstitute the segmented file,wherein the storing a segmented file as a plurality of individually stored object segments includes storing a first individually stored object segment of the plurality of individually stored object segments into a first storage pool located in a first zone, and data stored within the first storage pool are subject, based on a single event, to a correlated loss of access;
receiving a first data range and an instruction to include object data from the first data range in the segmented file;
storing information from the first data range in at least one new object segment;
calculating a first checksum for the first individually stored object segment, the first checksum being associated with the first individually stored object segment in the manifest;
replicating the first individually stored object segment;
calculating a second checksum for the replicated first individually stored object segment;
storing the replicated first individually stored object segment into a second storage pool different from the first storage pool in response to determining that the first checksum matches the second checksum, wherein the second storage pool is located in a second zone different from the first zone, and data stored within the second storage pool are subject to a correlated loss of access; and
modifying the manifest to reference the object data from the first data range as well as information from the plurality of preexisting object segments, and the replicated first individually stored object segment is stored in the second storage pool rather than the first individually stored object segment, wherein a reconstructed segmented file is based on the modified manifest.
5 Assignments
0 Petitions
Accused Products
Abstract
A segmented object storage system is an object storage system that divides files into a number of object segments, each segment corresponding to a portion of an object, and stores each segment individually in the 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. Manipulation of the individual object segments and/or the manifest can be used to implement copy-on-write, snapshotting, software transactional memory, and peer-to-peer transmission of the large file.
11 Citations
18 Claims
-
1. A method for modifying object data in a cloud storage system, the method comprising:
-
storing, using one or more processors, a segmented file as a plurality of individually stored object segments and a manifest, wherein each of the plurality of individually stored object segments corresponds to a portion of data in the segmented file, and wherein the manifest describes the relationship of the plurality of individually stored object segments to the segmented file sufficient to reconstitute the segmented file, wherein the storing a segmented file as a plurality of individually stored object segments includes storing a first individually stored object segment of the plurality of individually stored object segments into a first storage pool located in a first zone, and data stored within the first storage pool are subject, based on a single event, to a correlated loss of access; receiving a first data range and an instruction to include object data from the first data range in the segmented file; storing information from the first data range in at least one new object segment; calculating a first checksum for the first individually stored object segment, the first checksum being associated with the first individually stored object segment in the manifest; replicating the first individually stored object segment; calculating a second checksum for the replicated first individually stored object segment; storing the replicated first individually stored object segment into a second storage pool different from the first storage pool in response to determining that the first checksum matches the second checksum, wherein the second storage pool is located in a second zone different from the first zone, and data stored within the second storage pool are subject to a correlated loss of access; and modifying the manifest to reference the object data from the first data range as well as information from the plurality of preexisting object segments, and the replicated first individually stored object segment is stored in the second storage pool rather than the first individually stored object segment, wherein a reconstructed segmented file is based on the modified manifest. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for implementing localized changes to a data object in a cloud storage system, the method comprising:
-
storing, using one or more processors, a segmented file as a plurality of individually stored object segments and a first manifest, wherein each of the plurality of individually stored object segments corresponds to a portion of data in the segmented file, wherein a first stored object segment of the plurality of individually stored object segments is stored in a first storage pool, wherein the first manifest describes the relationship of the plurality of individually stored object segments to the segmented file sufficient to reconstitute the segmented file, and wherein the first storage pool is located in a first zone, and data stored within the first storage pool are subject, based on a single event, to a correlated loss of access; receiving a request for write access to the segmented file; creating a copy-on-write segmented file responsive to the request for write access to the segmented file, wherein creating the copy-on-write segmented file includes creating a second manifest, wherein the second manifest initially describes the relationship of the plurality of individually stored object segments to the segmented file in a manner identical to the first manifest; receiving a first data range and an instruction to include object data from the first data range in the copy-on-write segmented file; storing information from the first data range in at least one new object segment in a second storage pool, wherein second storage pool is located in a second zone different from the first zone, and data stored within the second storage pool are subject to a correlated loss of access; calculating a first checksum for the first stored object segment, the first checksum being associated with the first stored object segment in the first manifest; replicating the first stored object segment; calculating a second checksum for the replicated first stored object segment; storing the replicated first stored object segment into a third storage pool different from the first storage pool in response to determining that the first checksum matches the second checksum; and modifying the second manifest to reference the object data from the first data range as well as information from the plurality of preexisting object segments, and the replicated first stored object segment is stored in the third storage pool rather than the first stored object segment, wherein a reconstructed segmented file is based on the modified second manifest. - View Dependent Claims (16, 17, 18)
-
Specification