Optimistically consistent arbitrary data blob transactions
First Claim
1. One or more computer readable non-transitory memories storing computer-executable instructions that, when executed, cause one or more processors to perform acts comprising:
- receiving a request to transact data across a plurality of stored data blobs that include stored data;
creating duplicate data blobs for stored data blobs;
creating a record blob that includes pointers to the duplicate data blobs;
modifying individual stored data blobs to replace the respective stored data with a pointer that points to the record blob using optimistic locking;
creating new data blobs that include modified data for the stored data blobs based at least in part on the request to transact data;
updating the record blob to include pointers to the new data blobs using optimistic locking;
locking the record blob from additional updates; and
updating the individual stored data blobs to replace a corresponding pointer with the modified data from a corresponding new data blob.
1 Assignment
0 Petitions
Accused Products
Abstract
A blob transaction component is a tiered middleware framework component that facilitates data transactions across arbitrary data blobs in an optimistically consistent manner. The component receives a request to transact data across multiple stored data blobs. For each stored data blob, the component creates a duplicate data blob. The component then creates a record blob that includes a pointer to the duplicate data blob. The stored data blob is then modified by the component to point to the record blob using optimistic locking. The component then creates a new data blob that includes modified data. The component further updates the record blob to include a pointer to the new data blob using optimistic locking. Following locking of the record blob, the stored data blob is updated with the modified data by the component, and the record blob, the duplicate data blob, and the new data blobs are deleted.
59 Citations
25 Claims
-
1. One or more computer readable non-transitory memories storing computer-executable instructions that, when executed, cause one or more processors to perform acts comprising:
-
receiving a request to transact data across a plurality of stored data blobs that include stored data; creating duplicate data blobs for stored data blobs; creating a record blob that includes pointers to the duplicate data blobs; modifying individual stored data blobs to replace the respective stored data with a pointer that points to the record blob using optimistic locking; creating new data blobs that include modified data for the stored data blobs based at least in part on the request to transact data; updating the record blob to include pointers to the new data blobs using optimistic locking; locking the record blob from additional updates; and updating the individual stored data blobs to replace a corresponding pointer with the modified data from a corresponding new data blob. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-implemented method, comprising:
under control of one or more computing systems comprising one or more processors executing executable instructions, performing a delegation operation on a plurality of data blobs based on a data transaction, the delegation operation including; creating a duplicate data blobs for stored data blobs in the plurality of data blobs, the stored data blobs including stored data; creating a record blob that includes pointers to the duplicate data blobs; and modifying individual stored data blobs to replace respective stored data with a corresponding additional pointer that points to the record blob storing the pointers to the duplicate data blobs using optimistic locking. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
17. A computer-implemented method, comprising:
under control of one or more computing systems comprising one or more processors executing executable instructions, storing a first identifier of a stored data blob in a first master blob, the first identifier enabling an application to access data in the stored data blob; creating a second master blob that stores the first identifier of the stored data blob; creating a record blob that includes a first pointer to the second master blob; modifying the first master blob by replacing the first identifier stored in the first master blob with a second pointer to the record blob using optimistic locking; creating a new data blob that includes modified data for the stored data blob based at least in part on a data transaction and a third master blob stores a second identifier of the new data blob, the second identifier enabling the application to access data in the new data blob; updating the record blob by replacing the first pointer in the record blob with a third pointer to the third master blob via optimistic locking; and locking the record blob from additional updates and replacing the second pointer in the first master blob with the second identifier of the new data blob. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
Specification