Consistent views of partitioned data in eventually consistent systems
First Claim
1. A method, comprising:
- receiving a read request submitted by a user, the read request associated with a source document stored in a storage unit;
retrieving, responsive to the read request, the source document from the storage unit;
retrieving a user view record responsive to the read request from a user-specific partition of a cloud storage resource, wherein the user view record is associated with the user and represents a pending write request to the source document;
generating an updated responsive view of the source document by merging the pending write request associated with the user view record with the source document;
causing presentation of the updated responsive view of the source document;
subsequent to causing the presentation of the updated responsive view, merging the pending write request with the source document stored in the storage unit to produce an updated source document; and
in response to producing the updated source document, deleting the user view record associated with the write request from the user-specific partition of the cloud storage resource.
2 Assignments
0 Petitions
Accused Products
Abstract
A consistent user view system. The system incorporates any changes made by a user in any views shown to that user even when the changes have not propagated to the partitions supplying the view. The system separates the authority for edits from the replicated storage allowing efficient transactions and linear scalability. Documents are read from view-based partitions of a store. Document writes are written to a document-specific partition in a journal and applied to the store. The system stores a copy of pending changes in a user-specific partition. When a user requests a view, the system checks that user'"'"'s cache for any pending changes applicable to the view. If any applicable changes are found, the changes are applied before showing the view to the user. Pending changes that have been successfully applied to the store are trimmed from the user-specific partition to free up resources.
59 Citations
18 Claims
-
1. A method, comprising:
-
receiving a read request submitted by a user, the read request associated with a source document stored in a storage unit; retrieving, responsive to the read request, the source document from the storage unit; retrieving a user view record responsive to the read request from a user-specific partition of a cloud storage resource, wherein the user view record is associated with the user and represents a pending write request to the source document; generating an updated responsive view of the source document by merging the pending write request associated with the user view record with the source document; causing presentation of the updated responsive view of the source document; subsequent to causing the presentation of the updated responsive view, merging the pending write request with the source document stored in the storage unit to produce an updated source document; and in response to producing the updated source document, deleting the user view record associated with the write request from the user-specific partition of the cloud storage resource. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
-
a first storage system storing and servicing write requests; a second storage system storing documents and servicing read requests; a user-specific partition of a cache associated with a user; and a computing device having a processor and a memory, the computing device operable to; store, in the first storage system, a write request submitted by the user and comprising an edit to a document stored in the second storage system; store a user view record associated with the write request in the user-specific partition of the cache; receive a read request submitted by the user, wherein the read request is associated with the document; retrieve, responsive to the read request, the document from the second storage system; retrieve the user view record responsive to the read request from the user-specific partition of the cache; generate an updated responsive view of the document by merging the write request associated with the user view record with the document; cause presentation of the updated responsive view of the document; subsequent to causing the presentation of the updated responsive view, merge the write request with the document stored in the second storage system to produce an updated document; and in response to producing the updated document, delete the user view record from the user-specific partition of the cache. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A method, comprising:
-
receiving a first read request submitted by a first user, the first read request associated with a document; retrieving, responsive to the first read request, the document from a storage system; retrieving a first user view record responsive to the first read request from a first user-specific partition of a cache, wherein the first user view record is associated with the first user and represents a first pending write request to the document submitted by the first user; generating an updated responsive view of the document by merging the first pending write request associated with the first user view record with the document; causing presentation of the updated responsive view of the document; subsequent to causing the presentation of the updated responsive view, merging the first pending write request with the document stored in the storage system to produce an updated document; prior to merging the first pending write request with the document, receiving a second read request submitted by a second user, the second read request associated with the document; and responsive to the second read request and based on a determination that a second user-specific partition in the cache does not store a second user view record that represents a second pending write request to the document submitted by the second user, causing presentation of a responsive user view of the document that is associated with the second user. - View Dependent Claims (15, 16, 17, 18)
-
Specification