P
US11210283B2ActiveUtilityPatentIndex 62

Reducing update conflicts when maintaining views

Assignee: MICROSOFT TECHNOLOGY LICENSING LLCPriority: Apr 30, 2007Filed: Dec 22, 2017Granted: Dec 28, 2021
Est. expiryApr 30, 2027(~0.8 yrs left)· nominal 20-yr term from priority
Inventors:KHARATISHVILI TENGIZXIAO WEISTEFANI STEFANO
G06F 16/24539G06F 16/2282G06F 16/2365G06F 16/2455G06F 16/2379
62
PatentIndex Score
0
Cited by
5
References
20
Claims

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

exact text as granted — not AI-modified
The invention claimed is: 
     
       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.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.