Optimized content object storage service for large scale content
AssigneeInternational Business Machines Corporation
InventorsJames A. Reimer, Xiaoyang Yang, Alan T. Yaung
Life of this patent
Estimating the term…
Abstract
Provided are techniques for optimized content object storage service for large scale content. A content object file is created. An index entry for the content object file is created with a content object key and a content object location. The content object file is appended to an aggregated file on a storage node. In response to a request to retrieve the content object file from the aggregated file, the content object key is used to access the content object location that describes the storage node, a name of the aggregated file, an offset into the aggregated file, and a size of the content object file to retrieve the content object file.
Claims18
A computer-implemented method, comprising operations for:
- creating an aggregated file that includes a plurality of content object files, wherein a content object file of the plurality of content object files in the aggregated file has a plurality of versions;
- creating an indexing structure with an entry for each content object file of the plurality of content object files in the aggregated file, wherein each entry comprises a location of that content object file in the aggregated file, a content object name, a content object key, and a content object version number;
- receiving a request to update an existing content object file of the plurality of content object files in the aggregated file with an updated content object file;
- determining whether versioning is enabled;
- in response to determining that versioning is enabled,
- creating a new index entry in the indexing structure for the updated content object file with a different location, a same content object name as the existing content object file, a different content object key, and a content object version number that is incremented by one based on a last content object version number of the existing content object file;
- in response to determining that the versioning is not enabled,
- setting a delete flag to indicate that the existing content object file is to be deleted;
- removing an existing index entry from the indexing structure for the existing content object file;
- and
- creating a new index entry in the indexing structure for the updated content object file with a content object version number of one;
- and
- dynamically appending the updated content object file to the aggregated file sequentially.
A computer program product, the computer program product comprising a computer readable storage medium having program code embodied therewith, the program code executable by at least one processor to perform operations for:
- creating an aggregated file that includes a plurality of content object files, wherein a content object file of the plurality of content object files in the aggregated file has a plurality of versions;
- creating an indexing structure with an entry for each content object file of the plurality of content object files in the aggregated file, wherein each entry comprises a location of that content object file in the aggregated file, a content object name, a content object key, and a content object version number;
- receiving a request to update an existing content object file of the plurality of content object files in the aggregated file with an updated content object file;
- determining whether versioning is enabled;
- in response to determining that versioning is enabled,
- creating a new index entry in the indexing structure for the updated content object file with a different location, a same content object name as the existing content object file, a different content object key, and a content object version number that is incremented by one based on a last content object version number of the existing content object file;
- in response to determining that the versioning is not enabled,
- setting a delete flag to indicate that the existing content object file is to be deleted;
- removing an existing index entry from the indexing structure for the existing content object file;
- and
- creating a new index entry in the indexing structure for the updated content object file with a content object version number of one;
- and
- dynamically appending the updated content object file to the aggregated file sequentially.
A computer system, comprising:
- one or more processors, one or more computer-readable memories and one or more computer-readable, tangible storage devices;
- and
- program instructions, stored on at least one of the one or more computer-readable, tangible storage devices for execution by at least one of the one or more processors via at least one of the one or more computer-readable memories, to perform operations comprising:
- creating an aggregated file that includes a plurality of content object files, wherein a content object file of the plurality of content object files in the aggregated file has a plurality of versions;
- creating an indexing structure with an entry for each content object file of the plurality of content object files in the aggregated file, wherein each entry comprises a location of that content object file in the aggregated file, a content object name, a content object key, and a content object version number;
- receiving a request to update an existing content object file of the plurality of content object files in the aggregated file with an updated content object file;
- determining whether versioning is enabled;
- in response to determining that versioning is enabled,
- creating a new index entry in the indexing structure for the updated content object file with a different location, a same content object name as the existing content object file, a different content object key, and a content object version number that is incremented by one based on a last content object version number of the existing content object file;
- in response to determining that the versioning is not enabled,
- setting a delete flag to indicate that the existing content object file is to be deleted;
- removing an existing index entry from the indexing structure for the existing content object file;
- and
- creating a new index entry in the indexing structure for the updated content object file with a content object version number of one;
- and
- dynamically appending the updated content object file to the aggregated file sequentially.
Dependencies are inferred from the claim text.