Sub-containment concurrency for hierarchical data containers
First Claim
1. A computer-implemented method, comprising:
- identifying, via one or more computing devices, an uppermost container level of a data read for performing a requested data modification to one or more data containers;
reading, via at least one of the one or more computing devices, at least one of a parent version value or a child version value of a data container in the uppermost container level for a first time;
determining, via at least one of the one or more computing devices, data to write to the one or more data containers based at least in part on the requested data modification;
reading, via at least one of the one or more computing devices, the at least one of the parent version value or the child version value of the data container in the uppermost container level for a second time; and
performing, via at least one of the one or more computing devices, a plurality of activities when individual version values from the first read match the version value from the second read, the plurality of activities including;
writing the data to the one or more data containers;
changing the parent version value and the child version value for individual ones of the one or more data containers, the parent version value being distinct from the child version value;
changing the parent version value of individual data containers that are an ancestor to individual ones of the one or more data containers following the writing of the data to the one or more data containers; and
changing the child version value of individual data containers that are a descendent to individual ones of the one or more data containers following the writing of the data to the one or more data containers;
wherein the reading for the first time and the reading for the second time individually include reading both the parent version value and the child version value in response to the data container in the uppermost container level being a sub-container, and wherein the changing the at least one of the parent version value or child version value includes updating both the parent version value and the child version value for the data container that is the sub-container.
1 Assignment
0 Petitions
Accused Products
Abstract
A sub-container concurrency component of a tiered middleware framework ensures optimistic concurrency for transactions on hierarchical data containers. The component identifies an uppermost container level of a data read for performing a requested data modification to one or more data containers. The component further reads one or more of a parent version value or a child version value of the data container in the uppermost container level at a first time and a second time. Thus, the component writes data to the one or more data containers when each version value, such as the parent version value or the child version value, read at the first time matches its corresponding read version value read at the second time.
-
Citations
28 Claims
-
1. A computer-implemented method, comprising:
-
identifying, via one or more computing devices, an uppermost container level of a data read for performing a requested data modification to one or more data containers; reading, via at least one of the one or more computing devices, at least one of a parent version value or a child version value of a data container in the uppermost container level for a first time; determining, via at least one of the one or more computing devices, data to write to the one or more data containers based at least in part on the requested data modification; reading, via at least one of the one or more computing devices, the at least one of the parent version value or the child version value of the data container in the uppermost container level for a second time; and performing, via at least one of the one or more computing devices, a plurality of activities when individual version values from the first read match the version value from the second read, the plurality of activities including; writing the data to the one or more data containers; changing the parent version value and the child version value for individual ones of the one or more data containers, the parent version value being distinct from the child version value; changing the parent version value of individual data containers that are an ancestor to individual ones of the one or more data containers following the writing of the data to the one or more data containers; and changing the child version value of individual data containers that are a descendent to individual ones of the one or more data containers following the writing of the data to the one or more data containers; wherein the reading for the first time and the reading for the second time individually include reading both the parent version value and the child version value in response to the data container in the uppermost container level being a sub-container, and wherein the changing the at least one of the parent version value or child version value includes updating both the parent version value and the child version value for the data container that is the sub-container. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-implemented method, comprising:
-
identifying, via one or more computing devices, an uppermost container level of a data read for performing a requested data modification to one or more data containers; reading, via at least one of the one or more computing devices, at least one of a parent version value or a child version value of a data container in the uppermost container level at a first time and a second time, wherein the reading for the first time and the reading for the second time individually include reading both the parent version value and the child version value in response to the data container in the uppermost container level being a sub-container; and in response to determining that an individual version value of the data container read at the first time matches the individual version value read at the second time; writing, via at least one of the one or more computing devices, data to the one or more data containers, updating, via at least one of the one or more computing devices, the parent version value of at least one ancestor data container to the one or more data containers or updating the child version value of at least one descendent data container to the one or more data containers, and changing, via at least one of the one or more computing devices, both the parent version value and the child version value of the data container in the uppermost container level when the data container in the uppermost container level is a sub-container. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. One or more non-transitory computer readable media storing computer-executable instructions that, when executed, cause one or more processors to perform acts comprising:
-
identifying an uppermost container level of a data read for an application process to perform a requested data modification to data containers stored in at least one non-blob data store; reading a parent version value and a child version value of a sibling data container in the uppermost container level at a first time and a second time, the parent version value of the sibling data container being distinct from the child version value of the sibling data container; writing data to one or more data containers when the version value of the sibling data container read at the first time matches the version value read at the second time; updating both the parent version value and the child version value of the sibling data container upon writing the data; aborting a data write to the one or more data containers in response to at least one of the version values of the sibling data container read at the first time failing to match the corresponding version value read at the second time; and updating at least one of the parent version value of individual ancestor data containers or the child version value of individual descendent data containers of individual sibling data containers in response to individual version values of the individual sibling data containers read at the first time matching the individual version values read at the second time. - View Dependent Claims (15, 16, 17, 18)
-
-
19. One or more non-transitory computer readable media storing computer-executable instructions that, when executed, cause one or more processors to perform acts comprising:
-
identifying an uppermost container level of a data read for performing a requested data modification to one or more data containers; reading a blob version value of a data blob that includes a data container in the uppermost container level for a first time and a second time, the data container in the uppermost container level having a parent version value and a child version value, changing the blob version value when at least one of the parent version value or the child version value of the data container in the uppermost container level is updated; writing data to the one or more data containers when the blob version value read at the first time matches the blob version value read at the second; and updating both the parent version value and the child version value of the data container in the uppermost container in response to writing data to the one or more data containers when the uppermost data container is a sub-container. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28)
-
Specification