IP Library › Granted Patent US 10,706,039
Granted Patent B2
US 10,706,039 · App. 16/408,568 · Granted Jul 7, 2020

Data coherency between trusted DBMS and untrusted DBMS

Inventors: Felix Beier (Haigerloch, DE); Nicole Finnie (Boeblingen, DE); Namik Hrle (Boeblingen, DE); Einar Lueck (Filderstadt, DE)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F16/2365G06F16/221G06F16/2219G06F16/2291G06F21/6227H04L63/045
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 10,706,039
App. No.
16/408,568
Granted
Jul 7, 2020
Kind
B2
Abstract

The present disclosure relates to a method for processing data in a database engine. The method includes storing a first instance of a first table in the database engine in plaintext. Encryption information about encryption methods and encryption keys of at least one predefined column of the first table may be maintained. In response to data changes in the column, first log entries for the data changes may be written in plaintext. The data changes may be encrypted by an encryption component using the encryption information. This results in encrypted data changes. Second log entries for the encrypted data changes may be written and applied to a second instance of the first table. The second instance of the first table is stored at a further database engine.

Claims (22)

1. A method for processing data in a database engine, the method comprising:

storing, by the database engine, a first instance of a first table in plaintext on a first storage device of a first computer system;

maintaining encryption information about encryption methods and encryption keys of at least one predefined column of the first table;

creating encrypted data on the first storage device based on the encryption methods and encryption keys of the at least one predefined column of the first table by creating a temporary table, encrypting data of the first table resulting in the encrypted data, and storing the encrypted data in the temporary table;

loading the encrypted data of the temporary table into a second instance of the first table on a second storage device of a second computer system using a further database engine, and deleting the temporary table after the loading of the encrypted data;

in response to data changes in the column, writing first log entries for the data changes in plaintext to the first storage device;

encrypting the data changes by an encryption component using the encryption information, resulting in creation of encrypted data changes in the temporary table; and

writing second log entries for the encrypted data changes and applying the encrypted data changes to the second instance of the first table based on the temporary table.

2. The method of claim 1 , wherein the database engine comprises a table loader configured to receive a request indicating a table and to transfer the table to the further database engine, wherein applying the encrypted data changes comprises sending a request to the table loader, the request indicating a temporary table comprising the encrypted data changes.

3. The method of claim 1 , further comprising locking the first table for preventing changes to the first table before creating the temporary table and unlocking the first table after loading the encrypted data into the further database engine.

4. The method of claim 1 , further comprising before writing the second log entries regularly reading the first log entries and in response to identifying first log entries of the data changes, performing the encrypting of the data changes and the writing of the second log entries.

5. The method of claim 1 , wherein applying the encrypted data changes comprises:

regularly reading the second log entries and in response to identifying second log entries of the encrypted data changes applying the encrypted data changes.

6. The method of claim 1 , wherein the database engine is configured to perform online transaction processing (OLTP) processes, wherein the further database engine is configured for performing online analytical processing (OLAP) processes.

7. The method of claim 1 , wherein the database engine is a trusted engine and the further database engine is an untrusted engine.

8. The method of claim 1 , wherein the maintaining of the encryption information comprises:

encrypting the column of the first table by the encryption component resulting in the second instance of the first table, the second instance of the first table containing at least part of the data of the first table in encrypted form; and

triggering storing of the second instance of the first table in the further database engine.

9. The method of claim 8 , further comprising:

receiving a query against the first table in a data processing system including the database engine;

determining whether to execute the query in the database engine or the further database engine, the determination involving comparison of the query type with the encryption information of the second instance of the first table; and

in response to deciding to execute the query in the further database engine, rewriting the query against the second instance of the first table by using at least the encryption information of the second instance.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2019
From: BEIER, FELIX; FINNIE, NICOLE; HRLE, NAMIK; LUECK, EINAR
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049141/0619 →
Continuity (2)
Continuation 15792848 · Oct 25, 2017
Related Publication 20190266147A1 · Aug 29, 2019
Cited By (1)
US 12,443,728