Commit and rollback of data streams provided by partially trusted entities
First Claim
1. A non-transitory computer-readable storage medium having stored thereon instructions that, upon execution by one or more computing devices, cause the one or more computing devices at least to:
- maintain on one or more storage devices a first version of a collection of key-value pairs, first version of the collection comprising a first version of a value;
store a second version of the value in response to a request comprising a key and the second version of the value;
associate an identifier of a second version of the collection with information indicative of an unaccepted state of the collection;
store, on the storage device, a mapping between an extended key and the second version of the value, the extended key comprising the identifier of the second version of the collection and the key;
access the first version of the value based at least in part on using the extended key to determine that the second version of the value is associated with the unaccepted state, wherein the extended key is identified by a subset of the extended key corresponding to the key;
associate the identifier of the second version of the collection with information indicative of an accepted state in response to receiving information indicative of the second version of the collection being accepted; and
access the second version of the value based at least in part on using the extended key to determine that the second version of the value is associated with an accepted state.
1 Assignment
0 Petitions
Accused Products
Abstract
A collection of key-value pairs may be maintained by a key-value database management system. Updates to the collection may be provided by a partially trusted entity. The updates to the collection may be stored in a series of transactions that are committed synchronously but associated with a second version of the collection of key-value pairs that is not immediately visible to a data consumer. The second version of the collection may initially be associated with an unaccepted state. The second version may be accepted and made available to the data consumer, or rejected and rolled back to the previous version.
-
Citations
20 Claims
-
1. A non-transitory computer-readable storage medium having stored thereon instructions that, upon execution by one or more computing devices, cause the one or more computing devices at least to:
-
maintain on one or more storage devices a first version of a collection of key-value pairs, first version of the collection comprising a first version of a value; store a second version of the value in response to a request comprising a key and the second version of the value; associate an identifier of a second version of the collection with information indicative of an unaccepted state of the collection; store, on the storage device, a mapping between an extended key and the second version of the value, the extended key comprising the identifier of the second version of the collection and the key; access the first version of the value based at least in part on using the extended key to determine that the second version of the value is associated with the unaccepted state, wherein the extended key is identified by a subset of the extended key corresponding to the key; associate the identifier of the second version of the collection with information indicative of an accepted state in response to receiving information indicative of the second version of the collection being accepted; and access the second version of the value based at least in part on using the extended key to determine that the second version of the value is associated with an accepted state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for performing a metatransactional commit on data received from a partially trusted entity, the method comprising:
-
maintaining on one or more storage devices a first version of a collection of key-value pairs, the first version of the collection comprising a first version of a value; storing a second version of the value in response to a request comprising a key and the second version of the value; associating an identifier of a second version of the collection with information indicative of an unaccepted state of the collection; storing, on the one or more storage devices, a mapping between an extended key and the second version of the value, the extended key comprising the identifier of the second version of the collection and the key; accessing the first version of the value based at least in part on using the extended key to determine that the second version of the value is associated with the unaccepted state, wherein the extended key is identified by a subset of the extended key corresponding to the key; associating the identifier of the second version of the collection with information indicative of an accepted state in response to receiving information indicative of the second version of the collection being accepted; and accessing the second version of the value based at least in part on using the extended key to determine that the second version of the value is associated with an accepted state. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A system comprising:
-
at least one processor; and at least one memory having stored thereon computer-readable instructions that, upon execution by the at least one processor, cause the system at least to; store a first version of a value in a first version of a collection of key-value pairs; store a second version of the value in a second version of the collection of key-value pairs, the second version of the collection stored with information indicative of an unaccepted state of the second version of the collection; store a mapping between an extended key and the second version of the value, the extended key comprising an identifier of the second version of the collection and a key associated with the second version of the value; access the first version of the value based at least in part on using the extended key to determine that the second version of the value is associated with the unaccepted state; store information indicative of an accepted state of the second version of the collection; and access the second version of the value based at least in part on using the extended key to determine that the second version of the value is associated with the accepted state. - View Dependent Claims (17, 18, 19, 20)
-
Specification