Data storage for file updates
First Claim
1. A method for updating a file maintained in cold storage, the method comprising:
- receiving at a first computing device a plurality of updates for the file from a plurality of computing devices for a first application;
storing the updates from the plurality of computing devices temporarily at a blob storage on the first computing device, the updates being stored at the blob storage independently of an underlying file format of data in the updates, at least one of the updates being stored as an arbitrary length binary string, the arbitrary length binary string being different than the underlying file format of data in the at least one of the updates, the updates from the plurality of computing devices being stored temporarily at the blob storage until a commit instruction is received at the first computing device;
receiving the commit instruction;
retrieving at the first computing device at least a portion of the file from the cold storage in response to the commit instruction;
retrieving at the first computing device at least a first update of the plurality of updates from the blob storage;
integrating at the first computing device the first update with the portion of the file to generate an updated file, the integrating of the first update with the portion of the file being performed at the first computing device before the updated file is stored in the cold storage;
performing at least one pre-storage process on the updated file, wherein the pre-storage process was not performed on the first update prior to storing the first update at the blob storage;
storing the updated file in the cold storage;
receiving a request at the first computing device from a second application to access the first update from the blob storage before the first update is integrated and stored in the cold storage;
reading from the blob storage to obtain a copy of the first update; and
sending the copy of the first update to the second application.
2 Assignments
0 Petitions
Accused Products
Abstract
A storage system according to one embodiment for managing a first file includes a blob storage and a handler. The blob storage may be configured to store data related to the first file temporarily. The handler may be configured to store in the blob storage any data related to the first file and received from an application. The handler also may be configured to transfer at least a portion of the data from the blob storage to persistent storage in response to a commit instruction received from an application or generated by the handler. The handler also may be configured to retrieve any portion of the data stored in the blob storage and to send the same to a requesting application in response to an access request.
259 Citations
13 Claims
-
1. A method for updating a file maintained in cold storage, the method comprising:
-
receiving at a first computing device a plurality of updates for the file from a plurality of computing devices for a first application; storing the updates from the plurality of computing devices temporarily at a blob storage on the first computing device, the updates being stored at the blob storage independently of an underlying file format of data in the updates, at least one of the updates being stored as an arbitrary length binary string, the arbitrary length binary string being different than the underlying file format of data in the at least one of the updates, the updates from the plurality of computing devices being stored temporarily at the blob storage until a commit instruction is received at the first computing device; receiving the commit instruction; retrieving at the first computing device at least a portion of the file from the cold storage in response to the commit instruction; retrieving at the first computing device at least a first update of the plurality of updates from the blob storage; integrating at the first computing device the first update with the portion of the file to generate an updated file, the integrating of the first update with the portion of the file being performed at the first computing device before the updated file is stored in the cold storage; performing at least one pre-storage process on the updated file, wherein the pre-storage process was not performed on the first update prior to storing the first update at the blob storage; storing the updated file in the cold storage; receiving a request at the first computing device from a second application to access the first update from the blob storage before the first update is integrated and stored in the cold storage; reading from the blob storage to obtain a copy of the first update; and sending the copy of the first update to the second application. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A storage system for managing a first file, the storage system comprising:
-
at least one computing device and memory; a blob storage, on a first computing device, configured to store data related to the first file temporarily and independently of an underlying file format of the data, the blob storage being configured to store a plurality of data entries from a plurality of computing devices, the blob storage storing at least one of the data entries as an arbitrary length binary string, the arbitrary length binary string being different than the underlying file format of the at least one of the data entries; a cold storage, on the first computing device, in which the first file is stored; a handler, on the first computing device, communicatively coupled to a plurality of applications, the handler being configured to store in the blob storage any data received from any of the applications and related to the first file, the handler being configured to store the data in the blob storage until a commit instruction is received, the handler also being configured to coalesce and process at least a portion of the data from the blob storage in response to receipt of the commit instruction, the coalescing and processing of the at least a portion of the data from the blob storage comprising integrating the at least a portion of the data from the blob storage with data obtained from the cold storage, the handler also being configured to retrieve any portion of the data from the blob storage and to send the portion of the data to a first one of the applications when the first application requests access to the portion of the data, wherein the handler is configured to coalesce and process at least the portion of the data from the blob storage by selecting an appropriate storage API from the plurality of storage APIs based on a file format of the first file, and a file format metadata storage containing file format metadata associated with the first file, the file format metadata indicating a file structure of the first file to enable incremental access to the first file. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A computer readable storage memory encoding instructions for implementing a computer method of updating a master copy of a document, the method comprising:
-
receiving at a first storage device from a plurality of computing devices a plurality of incremental updates for the document, each incremental update being received from one of a plurality of applications, wherein at least two of the incremental updates are received from different applications; storing the incremental updates from the plurality of computing devices at a blob storage on the first storage device, the incremental updates being stored at the blob storage independently of an underlying file format of data in the incremental updates, at least one of the incremental updates being stored as an arbitrary length binary string, the arbitrary length binary string being different than the underlying format of the at least one incremental update, and the incremental updates being stored at a same database table in the blob storage, the updates from the plurality of computing devices being stored temporarily at the blob storage until a commit instruction is received at the first computing device; receiving at the first storage device the commit instruction; retrieving at the first storage device the master copy of the document from a cold storage in response to receiving the commit instruction; coalescing at the first storage device the incremental updates with the retrieved master copy of the document to create an updated master copy of the document, the coalescing including integrating the incremental updates with the retrieved master copy of the document, the integrating of the incremental updates with the retrieved master copy of the document being performed before the updated master copy of the document is stored in the cold storage; and storing the updated master copy of the document in the cold storage in place of the master copy of the document receiving an access request from one of the applications to read from the master copy of the document prior to receiving the commit instruction; analyzing the incremental updates stored in the blob storage to determine whether any of the incremental updates satisfy the access request; sending a copy of any incremental update satisfying the access request; retrieving at least a relevant portion of the master copy of the document from the cold storage if none of the incremental updates satisfies the access request; receiving from one of the applications a tag associated with one of the incremental updates; and storing the tag in the blob storage in association with the incremental update, the incremental update being searchable within the blob storage by the tag. - View Dependent Claims (13)
-
Specification