IP Library › Granted Patent US 9,892,275
Granted Patent B2
US 9,892,275 · App. 15/067,164 · Granted Feb 13, 2018

Data encryption in a multi-tenant cloud environment

Inventors: Vipul Gupta (Bangalore, IN); Balaji Raghunathan (Bangalore, IN); Darpan Dinker (Fremont, CA)
Assignee: SAP SE
G06F21/6218G06F21/602G06F21/10G06F2221/2107
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,892,275
App. No.
15/067,164
Granted
Feb 13, 2018
Kind
B2
Abstract

Various embodiments of systems, computer program products, and methods for encrypting data in a multi-tenant cloud environment are described herein. In an aspect, an encryption time frame to encrypt data associated with a user in a multi-tenant cloud environment may be retrieved. Based on the encryption time frame, a list of object types to be encrypted may be identified. A batch encryption period may be determined for encrypting data corresponding to the list of object types. Further, batches are sequentially selected based on the batch encryption period, for a selected batch: one or more data records may be retrieved based on the batch encryption period and the one or more data records may be encrypted in groups based on at least one throttling value.

Claims (52)

1. A non-transitory computer readable storage medium storing instructions, which when executed by a computer cause the computer to perform operations comprising:

retrieving an encryption time frame to encrypt data associated with a user in a multi-tenant cloud environment;

identifying a list of object types, associated with the user, to be encrypted based on the encryption time frame;

determining a batch encryption period for encrypting data corresponding to the list of object types;

sequentially select batches based on the batch encryption period; and

for a selected batch:

retrieving one or more data records based on the batch encryption period; and

encrypting the one or more data records in groups based on at least one throttling value,

wherein the at least one throttling value comprises at least one of a group size and a sleep time, and

wherein the group size and the sleep time are determined by:

receiving a plurality of pre-defined throttling values for encrypting the one or more data records corresponding to the batch;

determining whether encryption is a first run; and

rendering default throttling values from the plurality of pre-defined throttling values of the group size and the sleep time for encrypting the one or more data records in the first run.

2. The non-transitory computer-readable medium of claim 1 , wherein when the encryption is a subsequent run, determining the group size and the sleep time based on the pre-defined plurality of throttling values and current system load factors.

3. The non-transitory computer-readable medium of claim 2 , wherein the current system load factors comprise at least one of a time taken for encrypting the one or more data records of a previous group, a central processing unit (CPU) load during encrypting the one or more data records of the previous group, and a memory load.

4. The non-transitory computer-readable medium of claim 1 , the operations further comprising causing the computer to update status tables upon encrypting the one or more data records of the batch.

5. The non-transitory computer-readable medium of claim 1 , the operations further comprising causing the computer to encrypt data corresponding to multiple users opted in for data encryption based on a number of users opted in for the data encryption, an amount of data intended to be encrypted and priority for encrypting the data.

6. A computer implemented method to provide data encryption, comprising:

retrieving an encryption time frame to encrypt data associated with a user in a multi-tenant cloud environment;

identifying a list of object types, associated with the user, to be encrypted based on the encryption time frame;

determining a batch encryption period for encrypting data corresponding to the list of object types;

sequentially selecting batches based on the batch encryption period; and

for a selected batch:

retrieving one or more data records based on the batch encryption period; and

encrypting the one or more data records in groups based on at least one throttling value,

wherein the at least one throttling value comprises at least one of a group size and a sleep time, and

wherein the group size and the sleep time are determined by:

receiving a plurality of pre-defined throttling values for encrypting the one or more data records corresponding to the batch;

determining whether encryption is a first run; and

rendering default throttling values from the plurality of pre-defined throttling values of the group size and the sleep time for encrypting the one or more data records in the first run.

7. The computer implemented method of claim 6 , wherein when the encryption is a subsequent run, determining the group size and the sleep time based on the pre-defined plurality of throttling values and current system load factors.

8. The computer implemented method of claim 7 , wherein the current system load factors comprise at least one of a time taken for encrypting the one or more data records of a previous group, a central processing unit (CPU) load during encrypting the one or more data records of the previous group, and a memory load.

9. The computer implemented method of claim 6 , further comprising updating status tables upon encrypting the one or more data records of the batch.

10. The computer implemented method of claim 6 , wherein the one or more data records associated with the user are segregated into different object types and the object types comprise one or more tables to store the one or more data records.

11. A computing system to provide data encryption, comprising:

at least one processor; and

one or more memory devices communicative with the at least one processor, wherein the one or more memory devices store instructions to:

retrieve an encryption time frame to encrypt data associated with a user in a multi-tenant cloud environment;

identify a list of object types, associated with the user, to be encrypted based on the encryption time frame;

determine a batch encryption period for encrypting data corresponding to the list of object types;

sequentially select batches based on the batch encryption period; and

for a selected batch:

retrieve one or more data records based on the batch encryption period; and

encrypt the one or more data records in groups based on at least one throttling value,

wherein the at least one throttling value comprises at least one of a group size and a sleep time, and

wherein the group size and the sleep time are determined by:

receiving a plurality of pre-defined throttling values for encrypting the one or more data records corresponding to the batch;

determining whether encryption is a first run; and

rendering default throttling values from the plurality of pre-defined throttling values of the group size and the sleep time for encrypting the one or more data records in the first run.

12. The computing system of claim 11 , wherein when the encryption is a subsequent run, determining the group size and the sleep time based on the pre-defined plurality of throttling values and current system load factors.

13. The computing system of claim 12 , wherein the current system load factors comprise at least one of a time taken for encrypting the one or more data records of a previous group, a central processing unit (CPU) load during encrypting the one or more data records of the previous group, and a memory load.

14. The computing system of claim 11 , further comprising updating status tables upon encrypting the one or more data records of the batch.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2016
From: GUPTA, VIPUL; RAGHUNATHAN, BALAJI; DINKER, DARPAN
To: SAP SE
Reel/Frame 040930/0960 →
Continuity (1)
Related Publication 20170262645A1 · Sep 14, 2017