IP Library › Granted Patent US 11,210,283
Granted Patent B2
US 11,210,283 · App. 15/853,677 · Granted Dec 28, 2021

Reducing update conflicts when maintaining views

Inventors: Tengiz Kharatishvili (Sammamish, WA); Wei Xiao (Bellevue, WA); Stefano Stefani (Issaquah, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F16/2379G06F16/2282G06F16/2365G06F16/2455G06F16/24539
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,210,283
App. No.
15/853,677
Granted
Dec 28, 2021
Kind
B2
Abstract

Systems, methods, and computer storage media are disclosed. A computer storage medium includes instructions that, when executed, perform actions including maintaining a first view based on a first table of a database. The actions include performing a first transaction within the database. The actions include performing a second transaction within the database, and the second transaction relies on data from the first view. Performing the second transaction includes beginning the second transaction. In response to occurrence of both (i) the first transaction committing a first modification to the first table subsequent to the beginning of the second transaction and (ii) the second transaction causing a modification to the first view based on the first modification, performing the second transaction includes continuing the second transaction based on the data from the first view excluding the modification to the first view and completing the second transaction.

Claims (83)

1. A computer storage medium comprising instructions that, when executed, perform actions including:

in a database, maintaining a first view based on a first table of the database;

performing a first transaction within the database;

initiating a second transaction within the database;

based at least on performing the first transaction, committing a first modification to the first view by updating the first table subsequent to the initiating of the second transaction;

determining that the second transaction causes a second modification to the first view based on the first modification;

based at least on the determining, continuing the second transaction within the database, wherein the second transaction relies on data in the first table from the first view prior to the first modification to the first view;

completing the second transaction using the data in the first table from the first view prior to the first modification to the first view; and

committing a second modification to the first view based at least on a completion of the first transaction and the second transaction.

2. The computer storage medium of claim 1 , wherein performing the second transaction includes:

in response to occurrence of both (i) the first transaction committing the first modification to the first table prior to a beginning of the second transaction and (ii) the second transaction causing the modification to the first view based on the first modification:

continuing the second transaction based on the data in the first table from the first view including the modification to the first view; and

committing the second transaction.

3. The computer storage medium of claim 1 , wherein performing the second transaction includes:

in response to occurrence of both (i) the first transaction rolling back the first modification to the first table subsequent to the beginning of the second transaction and (ii) the second transaction causing the modification to the first view based on the first modification:

continuing the second transaction based on the data in the first table from the first view excluding the modification to the first view; and

committing the second transaction.

4. The computer storage medium of claim 1 , wherein the second modification to the first view based at least on the completion of the first transaction and the second transaction includes both the completed first transaction and the completed second transaction.

5. The computer storage medium of claim 1 , wherein:

the first transaction includes a first transaction ID;

the second transaction includes a second transaction ID;

the first transaction ID is associated with a first commit time; and

the second transaction ID is associated with a second commit time.

6. The computer storage medium of claim 1 , wherein the actions further include:

in the database and a second database, maintaining a second view based on a second table of (i) the database and (ii) the second database.

7. The computer storage medium of claim 6 , wherein performing the second transaction includes:

in response to occurrence of both (i) the first transaction committing the first modification to the second table subsequent to the beginning of the second transaction and (ii) the second transaction causing the modification to the second view based on the first modification:

continuing the second transaction based on data from the second view excluding the modification to the second view; and

committing the second transaction.

8. A method executed by a computer, the method comprising:

in a database, maintaining a first view based on a first table of the database;

performing a first transaction within the database;

initiating a second transaction within the database;

based at least on performing the first transaction, committing a first modification to the first view by updating the first table subsequent to the initiating of the second transaction;

determining that the second transaction causes a second modification to the first view based on the first modification;

based at least on the determining, continuing the second transaction within the database, wherein the second transaction relies on data from the first table from the first view prior to the first modification to the first view;

completing the second transaction using data in the first table from the first view prior to the first modification to the first view; and

committing a second modification to the first view based at least on a completion of the first transaction and the second transaction.

9. The method of claim 8 , wherein performing the second transaction includes:

in response to occurrence of both (i) the first transaction committing the first modification to the first table prior to the beginning of the second transaction and (ii) the second transaction causing the modification to the first view based on the first modification:

continuing the second transaction based on the data in the first table from the first view including the modification to the first view; and

committing the second transaction.

10. The method of claim 8 , wherein performing the second transaction includes:

in response to occurrence of both (i) the first transaction rolling back the first modification to the first table subsequent to the beginning of the second transaction and (ii) the second transaction causing the modification to the first view based on the first modification:

continuing the second transaction based on the data in the first table from the first view excluding the modification to the first view; and

committing the second transaction.

11. The method of claim 8 , wherein:

completing the second transaction includes one of committing the second transaction and aborting the second transaction; and

aborting the second transaction includes rolling back any updates based on the modification.

12. The method of claim 8 , wherein:

the first transaction includes a first transaction ID;

the second transaction includes a second transaction ID;

the first transaction ID is associated with a first commit time; and

the second transaction ID is associated with a second commit time.

13. The method of claim 8 , further comprising:

in the database and a second database, maintaining a second view based on a second table of (i) the database and (ii) the second database.

14. The method of claim 13 , wherein performing the second transaction includes:

in response to occurrence of both (i) the first transaction committing the first modification to the second table subsequent to the beginning of the second transaction and (ii) the second transaction causing the modification to the second view based on the first modification:

continuing the second transaction based on data from the second view excluding the modification to the second view; and

committing the second transaction.

15. An apparatus comprising:

a computing system environment comprising a processing unit coupled to a system memory, the computing system environment further comprising:

a transaction coordinator that is configured to:

maintain a first view based on a first table of a database;

perform a first transaction within the database;

initiate a second transaction within the database;

based at least on performing the first transaction, commit a first modification to the first view by updating the first table subsequent to the initiating of the second transaction; and

determine that the second transaction causes a second modification to the first view based on the first modification; and

a query engine that is configured to:

based at least on the determining, continue the second transaction within the database, wherein the second transaction relies on data in the first table from the first view prior to the first modification to the first view;

complete the second transaction using the data in the first table from the first view prior to the first modification to the first view; and

commit a second modification to the first view based at least on a completion of the first transaction and the second transaction.

16. The apparatus of claim 15 , wherein the query engine is configured to, while the transaction coordinator performs the second transaction, include the modification to the first view in response to occurrence of both (i) the first transaction committing the first modification to the first table prior to the beginning of the second transaction and (ii) the second transaction causing the modification to the first view based on the first modification.

17. The apparatus of claim 15 , wherein the query engine is configured to, while the transaction coordinator performs the second transaction, exclude the modification to the first view in response to occurrence of both (i) the first transaction rolling back the first modification to the first table subsequent to the beginning of the second transaction and (ii) the second transaction causing the modification to the first view based on the first modification.

18. The apparatus of claim 15 , wherein:

completing the second transaction includes one of committing the second transaction and aborting the second transaction; and

aborting the second transaction includes rolling back any updates based on the modification.

19. The apparatus of claim 15 , wherein:

the first transaction includes a first transaction ID;

the second transaction includes a second transaction ID;

the first transaction ID is associated with a first commit time; and

the second transaction ID is associated with a second commit time.

20. The apparatus of claim 15 , wherein the transaction coordinator is configured to maintain a second view based on a second table of (i) the database and (ii) a second database.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2019
From: KHARATISHVILI, TENGIZ; XIAO, WEI; STEFANI, STEFANO
To: MICROSOFT CORPORATION
Reel/Frame 049175/0410 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2019
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 049175/0613 →
Continuity (3)
Continuation 15255327 · Sep 2, 2016
Continuation 11796865 · Apr 30, 2007
Related Publication 20180189346A1 · Jul 5, 2018