IP Library Granted Patent US 9,535,853
Granted Patent B2
US 9,535,853 · App. 14/144,445 · Granted Jan 3, 2017

Building an undo log for in-memory blocks of data

Inventors: Scott D. Lashley (Portland, OR); John F. Miller, III (Lake Oswego, OR)
Assignee: International Business Machines Corporation
G06F12/1425G06F3/065G06F3/067G06F3/0619G06F11/00G06F12/1483G06F13/24G06F2212/1052
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 9,535,853
App. No.
14/144,445
Granted
Jan 3, 2017
Kind
B2
Abstract

Provided are techniques for building an undo log for in-memory blocks of data. Permission on a block of data in memory is set to prevent updates to that block of data using a memory protection function. In response to an update operation attempting to update the block of data in the memory, an interrupt with a location of the block of data is received, the block of data is copied to an undo log entry in an undo log, and the permission on the block of data in the memory is set to allow the update to that block of data to proceed using the memory protection function.

Claims (28)

1. A computer system, comprising:

one or more processors, one or more computer-readable memories and one or more computer-readable, tangible storage devices; and

program instructions, stored on at least one of the one or more computer-readable, tangible storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, to perform:

setting a permission on a block of data in an in-memory database to prevent updates to that block of data using a memory protection function;

in response to an update operation attempting to update the block of data,

receiving an interrupt with a location of the block of data;

copying the block of data to an undo log entry in an undo log; and

setting the permission on the block of data to allow the update to that block of data using the memory protection function;

in response to determining that a transaction that included the update operation for the block of data has committed, removing the undo log entry from the undo log;

in response to determining that the transaction that included the update operation has failed, using the undo log entry to restore the block of data by copying the block of data from the undo log entry back to the in-memory database; and

in response to one of removing the undo log entry and using the undo log entry to restore the block of data, setting the permission on the block of data to block updates to that block of data.

2. The computer system of claim 1 , wherein the memory protection function allows pages of memory to be marked with characteristics, and wherein one of the characteristics is blocking write access to the pages of memory.

3. The computer system of claim 1 , wherein a transaction updates multiple tables in the in-memory database.

4. The computer system of claim 1 , wherein memory stores the in-memory database.

5. The computer system of claim 1 , wherein a Software as a Service (SaaS) is configured to perform the system operations.

6. A computer program product, the computer program product comprising a computer readable storage medium having program code embodied therewith, the program code executable by at least one processor to perform:

setting a permission on a block of data in an in-memory database to prevent updates to that block of data using a memory protection function;

in response to an update operation attempting to update the block of data,

receiving an interrupt with a location of the block of data;

copying the block of data to an undo log entry in an undo log; and

setting the permission on the block of data to allow the update to that block of data using the memory protection function;

in response to determining that a transaction that included the update operation for the block of data has committed, removing the undo log entry from the undo log;

in response to determining that the transaction that included the update operation has failed, using the undo log entry to restore the block of data by copying the block of data from the undo log entry back to the in-memory database; and

in response to one of removing the undo log entry and using the undo log entry to restore the block of data, setting the permission on the block of data to block updates to that block of data.

7. The computer program product of claim 6 , wherein the memory protection function allows pages of memory to be marked with characteristics, and wherein one of the characteristics is blocking write access to the pages of memory.

8. The computer program product of claim 6 , wherein a transaction updates multiple tables in the in-memory database.

9. The computer program product of claim 6 , wherein memory stores the in-memory database.

10. The computer program product of claim 6 , wherein a Software as a Service (SaaS) is configured to perform the computer program product operations.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2014
From: LASHLEY, SCOTT D.; MILLER, JOHN F., III
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 032420/0869 →
Continuity (1)
Related Publication 20150186297A1 · Jul 2, 2015