IP Library Granted Patent US 8,170,997
Granted Patent B2
US 8,170,997 · App. 12/362,481 · Granted May 1, 2012

Unbundled storage transaction services

Assignee: Microsoft Corporation
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,170,997
App. No.
12/362,481
Granted
May 1, 2012
Kind
B2
Abstract

Systems (and corresponding methods) that unbundle the kernel or storage engine of a database system are provided. The unbundling separates transactional aspects from storage aspects. The two components of the storage engine resulting from the unbundling are a transaction component (TC) and a data component (DC). Data storage access methods are implemented in the DC without the added complexity of dealing with transactions, which are handled separately in the TC. The interface supported by the DC is a logical interface, e.g., record oriented, in which the way that records are mapped to disk pages (or flash memory blocks, etc.) need not be exposed. The TC then deals with logical locking and logging, meaning that it need know nothing about the way pages are used in the DC.

Claims (34)

1. A transactional data storage system, comprising:

a transaction component (TC) to provide a logical interface to map records to a memory, the TC to:

receive multiple transactions from one or more applications;

lock a database prior to sending a request to initiate each of the multiple transactions, the lock to enable transactional concurrency control;

send a request to initiate a transaction of the multiple transactions; and

log the transaction to enable aborting the transaction; and

a data component (DC) that operates architecturally autonomous relative to the TC, the DC to provide logical locking and logging of operations performed to the database, the DC contracting with the TC to:

receive the request to initiate the transaction from the transaction component; and

perform an atomic operation to the database in response to receiving the request based on the transaction, the atomic operation performed in an order that is conflict consistent with when the transaction was received;

wherein the TC contracts with the DC to prevent concurrently sending additional transactions from the multiple transactions that conflict with the transaction.

2. The system of claim 1 , wherein the DC verifies that performing the atomic operation is idempotent.

3. The system of claim 1 , wherein the TC informs the DC of a most recent stable atomic operation via a TC log.

4. The system of claim 1 , wherein:

the TC informs the DC of a most recent atomic operation for which earlier atomic operations have received replies;

the DC manages its cache correctly as a function of the most recent atomic operation to provide recovery; and

the DC informs the TC of the most recent atomic operation for which all earlier atomic operations have had their results made stable by the DC.

5. The system of claim 1 , wherein the DC provides a logical data interface that hides information as to where logical data is placed on storage devices.

6. The system of claim 5 , wherein the logical data consists of records.

7. The system of claim 1 , wherein the DC can be deployed on separate hardware elements, including separate cores or processors, disk controllers, or in distributed storage facilities, wherein the distributed storage facilities are at least one of network attached storage or cloud storage.

8. The system of claim 1 , the TC comprising:

a locking component that facilitates transaction concurrency control among logical operations; and

a logging component that retains a transaction log of logical operations sent to the DC, wherein the transaction log enables undo, redo or recovery.

9. The system of claim 8 , further comprising a data management component that enables each of the logical operations to be atomic and idempotent.

10. The system of claim 9 , further comprising an atomic operations component that linearizes concurrent operations, wherein linearization isolates each of the operations with regard to concurrent execution.

11. The system of claim 1 , further comprising an index component that establishes or maintains indexes and storage structures and masks the indexes and storages structures from the TC.

12. The system of claim 1 , further comprising a cache component that stages data pages to and from a storage device.

13. A computer-implemented method under control of one or more processors configured with executable instructions, the computer-implemented method comprising:

executing operations with a corresponding log sequence number (LSN) on a page of a memory;

establishing an abstract LSN (abLSN) based upon the LSN associated with the operations, wherein the abLSN represents the operations that correspond to results on a page;

maintaining the page and abLSN in the memory;

submitting redo or undo operations in restart operations;

providing multi-level redo of operations in which a data component (DC) recovers internal data access methods prior to permitting a transaction component (TC) to recover the logical operations that are on a TC log.

14. The computer-implemented method of claim 13 , further comprising synchronizing abLSN to a page upon flushing to the memory.

15. The computer implemented method of claim 13 , further comprising completing redo and undo operations from a data component (DC) log prior to executing redo recovery from the TC log.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2012
From: LOMET, DAVID B.; FEKETE, ALAN D; GREETINGS:, MICHAEL J
To: MICROSOFT CORPORATION
Reel/Frame 027778/0446 →
Continuity (1)
Related Publication 20100191713A1 · Jul 29, 2010