IP Library Granted Patent US 8,700,563
Granted Patent B1
US 8,700,563 · App. 13/548,915 · Granted Apr 15, 2014

Deterministic database systems

Inventors: Alexander Thomson (New Haven, CT); Daniel J. Abadi (New Haven, CT)
Assignee: Yale University
G06F17/30171G06F17/30371G06F17/30227G06F17/30592
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 8,700,563
App. No.
13/548,915
Granted
Apr 15, 2014
Kind
B1
Abstract

In an embodiment, a plurality of transactions for accessing a database may be acquired. The database may be associated with a plurality of locks. The plurality of transactions may include a first transaction, a second transaction, and a third transaction. A logical serialization sequence for executing the transactions may be identified. The logical serialization sequence may indicate that (1) the first transaction is to be executed before the second transaction based on all locks that are required by the first transaction being available; (2) the second transaction is to be executed after the first transaction has completed execution based on the second transaction requiring a lock that is required by the first transaction; and (3) the third transaction is to be executed before or during execution of the first transaction based on all locks required by the third transaction being different than the locks required by the first transaction.

Claims (66)

1. A method comprising:

acquiring a plurality of transactions for accessing a database, the plurality of transactions including a first transaction, a second transaction, and a third transaction, the first transaction being received before the second transaction and the third transaction being received after the second transaction, the database being associated with a plurality of locks;

identifying a logical serialization sequence for executing the first, second, and third transactions, the identifying including:

identifying that the first transaction is to be executed before the second transaction based on all locks, in the plurality of locks, that are required by the first transaction being available,

identifying that the second transaction is to be executed after the first transaction has completed execution based on the second transaction requiring a lock, in the plurality of locks, that is required by the first transaction, and

identifying that the third transaction is to be executed before or during execution of the first transaction based on all locks, in the plurality of locks, required by the third transaction being different than the locks required by the first transaction; and

executing the first, second, and third transactions, based on the identified logical serialization sequence.

2. The method of claim 1 , further comprising:

decomposing the first transaction into a first access set that contains a write set or a read set associated with the first transaction;

decomposing the second transaction into a second access set that contains a write set or a read set associated with the second transaction; and

determining that a lock, in the plurality of locks, required by the first access set is also required by the second access set.

3. The method of claim 1 , further comprising:

acquiring all of the locks required by the first transaction;

executing the first transaction to completion;

releasing all of the locks required by the first transaction;

acquiring all of the locks required by the second transaction; and

executing the second transaction.

4. The method of claim 1 , wherein the lock required by the first transaction and the second transaction is associated with a record in the database.

5. A method comprising:

acquiring a plurality of transactions for accessing a database, the plurality of transactions including a first transaction and second transaction, the first transaction being received before the second transaction, the database being associated with a plurality of locks;

decompose the first transaction into a third transaction and a fourth transaction based on:

the first transaction including the third transaction and the fourth transaction, and

the fourth transaction being dependent on a result of the third transaction;

identifying a logical serialization sequence for executing the second and third transactions, the identifying including:

identifying that the third transaction is to be executed before the second transaction based on all locks, in the plurality of locks, that are required by the third transaction being available, and

identifying that the second transaction is to be executed after the third transaction has completed execution based on the second transaction requiring a lock, in the plurality of locks, that is required by the third transaction; and

executing the second, and third transactions, based on the identified logical serialization sequence.

6. A non-transitory tangible computer-readable medium storing computer-executable instructions for:

acquiring a plurality of transactions for accessing a database, the plurality of transactions including a first transaction, a second transaction, and a third transaction, the first transaction being received before the second transaction and the third transaction being received after the second transaction, the database being associated with a plurality of locks;

identifying a logical serialization sequence for executing the first, second, and third transactions, the identifying including:

identifying that the first transaction is to be executed before the second transaction based on all locks, in the plurality of locks, that are required by the first transaction being available,

identifying that the second transaction is to be executed after the first transaction has completed execution based on the second transaction requiring a lock, in the plurality of locks, that is required by the first transaction, and

identifying that the third transaction is to be executed before or during execution of the first transaction based on all locks, in the plurality of locks, required by the third transaction being different than the locks required by the first transaction; and

executing the first, second, and third transactions, based on the identified logical serialization sequence.

7. The computer-readable medium of claim 6 , further comprising computer-executable instructions for:

decomposing the first transaction into a first access set that contains a write set or a read set associated with the first transaction;

decomposing the second transaction into a second access set that contains a write set or a read set associated with the second transaction; and

determining that a lock, in the plurality of locks, required by the first access set is also required by the second access set.

8. The computer-readable medium of claim 6 , further comprising computer-executable instructions for:

acquiring all of the locks required by the first transaction;

executing the first transaction to completion;

releasing all of the locks required by the first transaction;

acquiring all of the locks required by the second transaction; and

executing the second transaction.

9. The computer-readable medium of claim 6 , wherein the lock required by the first transaction and the second transaction is associated with a record in the database.

10. A system comprising:

processing logic for:

acquiring a plurality of transactions for accessing a database, the plurality of transactions including a first transaction, a second transaction, and a third transaction, the first transaction being received before the second transaction and the third transaction being received after the second transaction, the database being associated with a plurality of locks,

identifying a logical serialization sequence for executing the first, second, and third transactions, the identifying including:

identifying that the first transaction is to be executed before the second transaction based on all locks, in the plurality of locks, that are required by the first transaction being available,

identifying that the second transaction is to be executed after the first transaction has completed execution based on the second transaction requiring a lock, in the plurality of locks, that is required by the first transaction, and

identifying that the third transaction is to be executed before or during execution of the first transaction based on all locks, in the plurality of locks, required by the third transaction being different than the locks required by the first transaction, and

executing the first, second, and third transactions, based on the identified logical serialization sequence.

11. The system of claim 10 , wherein the processing logic is further for:

executing the first, second, and third transactions based on the schedule.

12. The system of claim 10 , wherein the processing logic is further for:

decomposing the first transaction into a first access set that contains a write set or a read set associated with the first transaction;

decomposing the second transaction into a second access set that contains a write set or a read set associated with the second transaction; and

determining that a lock, in the plurality of locks, required by the first access set is also required by the second access set.

13. The system of claim 10 , wherein the processing logic is further for:

acquiring all of the locks required by the first transaction;

executing the first transaction to completion;

releasing all of the locks required by the first transaction;

acquiring all of the locks required by the second transaction; and

executing the second transaction.

14. The system of claim 10 , wherein the lock required by the first transaction and the second transaction is associated with a record in the database.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2012
From: THOMSON, ALEXANDER; ABADI, DANIEL J.
To: YALE UNIVERSITY
Reel/Frame 029281/0356 →
CONFIRMATORY LICENSE Recorded Jul 24, 2012
From: YALE UNIVERSITY
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 028622/0397 →
Continuity (1)
Provisional Application 61508186 · Jul 15, 2011