IP Library › Granted Patent US 11,194,838
Granted Patent B2
US 11,194,838 · App. 16/661,167 · Granted Dec 7, 2021

Generating a data partitioning strategy for secure and efficient query processing

Inventors: Akshar Kaul (Bangalore, IN); Gagandeep Singh (Bangalore, IN); Manish Kesarwani (Bangalore, IN); Krishnasuri Narayanam (Bangalore, IN)
Assignee: International Business Machines Corporation
G06F16/278G06F16/211G06F16/23
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 11,194,838
App. No.
16/661,167
Granted
Dec 7, 2021
Kind
B2
Abstract

Methods, systems, and computer program products for generating a data partitioning strategy for secure and efficient query processing are provided herein. A computer-implemented method includes obtaining at least (i) a database schema associated with a database and (ii) a query workload associated with the database; and generating, based at least in part on the database schema and the query workload, a distributed database structure for the database that (i) stores a first set of columns of the database within a private cloud environment in a plaintext format and (ii) stores a second set of columns of the database in a public cloud environment, wherein the second set of columns is stored in either a plaintext format or an encrypted format based on whether the second set of columns comprises sensitive data.

Claims (49)

1. A computer-implemented method, the method comprising:

obtaining at least (i) a database schema associated with a database and (ii) a query workload associated with the database; and

generating, based at least in part on the database schema and the query workload, a distributed database structure for the database that (i) stores a first set of columns of the database within a private cloud environment in a plaintext format and (ii) stores a second set of columns of the database in a public cloud environment, wherein the second set of columns is stored in either a plaintext format or an encrypted format based on whether the second set of columns comprises sensitive data;

wherein the method is carried out by at least one computing device.

2. The computer-implemented method of claim 1 , wherein said generating the distributed database structure is based on at least one system constraint corresponding to the private cloud environment, wherein the at least one system constraint comprises one or more of: (i) a memory constraint, (ii) a storage constraint, and (iii) a processing constraint.

3. The computer-implemented method of claim 1 , wherein said generating the distributed database structure is based on at least one user preference, the at least one user preference comprising one or more of:

information indicating that one or more columns of the database are to be stored within the private cloud environment; and

information indicating one or more preferred encryption schemes to be used to encrypt the second set of columns into the encrypted format.

4. The computer-implemented method of claim 1 , comprising:

monitoring the query workload of the database; and

dynamically migrating one or more columns of the distributed database structure between the private cloud environment and the public cloud environment based on said monitoring.

5. The computer-implemented method of claim 4 , comprising:

performing a deduplication process that prioritizes columns of the distributed database structure that are unlikely to be migrated from, at least one of, (i) the public cloud environment to the private cloud environment and (ii) the private cloud environment to the public cloud environment.

6. The computer-implemented method of claim 1 , wherein one or more of the columns in the second set of columns comprise sensitive data, and wherein the sensitive data are stored within the public cloud environment in the encrypted format.

7. The computer-implemented method of claim 1 , wherein the query workload comprises at least one query, and wherein generating the distributed database structure for the database is based on a weight of a predicate column belonging to the at least one query, wherein the weight is based on (i) a query execution time of the at least one query and (ii) a call frequency of the at least one query.

8. The computer-implemented method of claim 1 , comprising:

processing one or more queries over the distributed system structure based at least in part on metadata information corresponding to the distributed database structure.

9. The computer-implemented method of claim 8 , comprising:

maintaining the metadata information, wherein the metadata information comprises one or more of: (i) information indicative of the columns stored within the private storage environment, (ii) information indicative of the columns stored within the public storage environment, and (iii) information corresponding to one or more encryption schemes applied to one or more of the columns that are stored in the public storage environment in an encrypted format.

10. The computer-implemented method of claim 8 , wherein said processing comprises:

determining at least one of the queries comprises a complex operator involving one or more of the columns stored in the public cloud environment, and

processing the at least one of the queries using a fallback mechanism.

11. The computer-implemented method of claim 1 , wherein said generating comprises:

prioritizing storing columns of the database that comprise strings in the private cloud environment over columns of the database that comprise integers.

12. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computing device to cause the computing device to:

obtain at least (i) a database schema associated with a database and (ii) a query workload associated with the database; and

generate, based at least in part on the database schema and the query workload, a distributed database structure for the database that (i) stores a first set of columns of the database within a private cloud environment in a plaintext format and (ii) stores a second set of columns of the database in a public cloud environment, wherein the second set of columns is stored in either a plaintext format or an encrypted format based on whether the second set of columns comprises sensitive data.

13. The computer program product of claim 12 , wherein said generating the distributed database structure is based on at least one system constraint corresponding to the private cloud environment, wherein the at least one system constraint comprises one or more of: (i) a memory constraint, (ii) a storage constraint, and (iii) a processing constraint.

14. The computer program product of claim 12 , wherein said generating the distributed database structure is based on at least one user preference, the at least one user preference comprising one or more of:

information indicating that one or more columns of the database are to be stored within the private cloud environment; and

information indicating one or more preferred encryption schemes to be used to encrypt the second set of columns into the encrypted format.

15. The computer program product of claim 12 , wherein the program instructions cause the computing device to:

monitor the query workload of the database; and

dynamically migrate one or more columns of the distributed database structure between the private cloud environment and the public cloud environment based on said monitoring.

16. The computer program product of claim 15 , wherein the program instructions cause the computing device to:

performing a deduplication process that prioritizes columns of the distributed database structure that are unlikely to be migrated from, at least one of, (i) the public cloud environment to the private cloud environment and (ii) the private cloud environment to the public cloud environment.

17. The computer program product of claim 12 , wherein one or more of the columns in the second set of columns comprise sensitive data, and wherein the sensitive data are stored within the public cloud environment in the encrypted format.

18. The computer program product of claim 12 , wherein the query workload comprises at least one query, and wherein generating the distributed database structure for the database is based on a weight of a predicate column belonging to the at least one query, wherein the weight is based on (i) a query execution time of the at least one query and (ii) a call frequency of the at least one query.

19. A system comprising:

a memory; and

at least one processor operably coupled to the memory and configured for:

obtaining at least (i) a database schema associated with a database and (ii) a query workload associated with the database; and

generating, based at least in part on the database schema and the query workload, a distributed database structure for the database that (i) stores a first set of columns of the database within a private cloud environment in a plaintext format and (ii) stores a second set of columns of the database in a public cloud environment, wherein the second set of columns is stored in either a plaintext format or an encrypted format based on whether the second set of columns comprises sensitive data.

20. A computer-implemented method, the method comprising:

obtaining a set of inputs comprising: (i) a database schema associated with a database, (ii) a query workload associated with the database, (iii) an indication that one or more columns in the database comprise sensitive data, and (iv) one or more system constraints of a private cloud;

generating, based on the set of inputs, a distributed database structure for the database that (i) stores a first set of columns of the database within a private cloud in a plaintext format, (ii) stores a second set of columns of the database in a public cloud in an encrypted format, wherein each column in the second set comprises sensitive data, and (iii) stores a third set of columns of the database in the public cloud in a plaintext format, wherein each column in the third set comprises data that are not sensitive;

obtaining one or more queries corresponding to said database; and

dynamically updating the distributed database structure based on said one or more queries;

wherein the method is carried out by at least one computing device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2019
From: KAUL, AKSHAR; SINGH, GAGANDEEP; KESARWANI, MANISH; NARAYANAM, KRISHNASURI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 050801/0587 →
Continuity (1)
Related Publication 20210124764A1 · Apr 29, 2021