IP Library › Granted Patent US 11,561,956
Granted Patent B2
US 11,561,956 · App. 16/860,532 · Granted Jan 24, 2023

Key pattern management in multi-tenancy database systems

Inventors: Ulrich Auer (Hockenheim, DE); Immo-Gert Birn (Philippsburg, DE); Ralf-Juergen Hauck (Heidelberg, DE); Uwe Schlarb (Oestringen, DE); Christian Stork (Bönen, DE); Welf Walter (Bad Schönborn, DE); Torsten Ziegler (Dielheim, DE); Volker Driesen (Heidelberg, DE)
Assignee: SAP SE
G06F16/2343G06F16/215G06F16/24556G06F16/24564H04L9/0819H04L63/065
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,561,956
App. No.
16/860,532
Granted
Jan 24, 2023
Kind
B2
Abstract

The present disclosure involves systems, software, and computer implemented methods for key pattern management. One example method includes receiving a query for a logical database table from an application. A determination is made as to whether the query is a write query. In response to determining that the query is a write query, a determination is made as to whether the query complies with a key pattern configuration that describes keys of records included in a physical database table that is part of a logical table implementation. The physical table includes records of the logical database table that are allowed to be written by the application. The write query is redirected to the physical database table in response to determining that the query complies with the key pattern definition. The query is rejected in response to determining that the query does not comply with the key pattern configuration.

Claims (74)

1. A database system comprising:

one or more computers;

a computer-readable medium coupled to the one or more computers, the computer readable medium having instructions stored thereon which, when executed by the one or more computers, cause the one or more computers to perform operations;

wherein the computer readable medium includes:

a current-version shared database container;

a next-version shared database container; and

multiple tenant database containers each including data for a respective tenant; wherein the current-version shared database container includes shared content shared by multiple tenants; and

wherein the next-version shared database container is a copy of the current-version shared database container that includes updated shared content modified to reflect changes for a new version of the database system; and

wherein each tenant database container includes tenant content that is specific to a respective tenant; and

wherein the operations comprise:

receiving a request to deploy the new version of the database system;

receiving a deployment package that includes data for the new version;

installing the next-version shared database container in the database system in parallel to the current-version shared database container;

deploying the new version to each of the multiple tenant database containers, wherein deploying the new version to each tenant database container comprises:

individually linking each of the multiple tenant database containers to the next-version shared database container; and

deploying, from the deployment package, changed tenant content to each tenant database container; and

dropping the current-version shared database container after deployment to each of the multiple tenant database containers has completed.

2. The system of claim 1 , wherein the multiple tenant database containers include a first tenant database container, a second tenant database container, and a third tenant database container; and wherein during deployment of the new version to each of the multiple tenant database containers, the first tenant database container is active and linked to the next-version shared database container, the second tenant database container is inactive and undergoing deployment to the new version, and the third tenant database container is active and linked to the current-version shared database container.

3. The system of claim 2 , wherein the operations comprise:

creating a backup of the second tenant database container before undergoing deployment of the second tenant database container;

encountering an error during the deployment of the new version to the second tenant database container;

determining that an error resolution process will take longer than a predetermined downtime window for the second tenant database container;

restoring the backup of the second tenant database container, including linking the backup of the second tenant database container to the current-version shared database container; and

ending the downtime window for the second tenant database container so that the second tenant database container is active and linked to the current-version shared database container when the downtime window for the second tenant database container ends.

4. The system of claim 3 , wherein the operations comprise:

performing the error resolution process while the second tenant database container is active and linked to the current-version shared database container; and

re-attempting deployment of the new version to the second tenant database container.

5. The system of claim 1 , wherein the new version includes changes to a software object, and wherein the multiple tenant database containers include a first tenant database container.

6. The system of claim 5 , wherein before deployment, data for the software object is stored in at least one shared table in the current-version shared database container and the next-version shared database container includes changes to the at least one shared table for the software object.

7. The system of claim 5 , wherein before deployment, data for the software object is stored in at least one shared table in the current-version shared database container and at least one tenant table in the first tenant database container, and the next-version shared database container includes changes to the at least one shared table for the software object; and

wherein deploying changed tenant content to the first tenant database container includes deploying changes to the at least one tenant table for the software object.

8. The system of claim 5 , wherein before deployment, data for the software object is stored in at least one tenant table in the first tenant database container and deploying changed tenant content to the first tenant database container includes deploying changes to the at least one tenant table for the software object.

9. A method comprising:

receiving a request to deploy a new version of a database system;

receiving a deployment package that includes data for the new version;

installing a next-version shared database container in the database system in parallel to a current-version shared database container;

deploying the new version to each of multiple tenant database containers, wherein deploying the new version to each tenant database container comprises:

individually linking each of the multiple tenant database containers to the next-version shared database container; and

deploying, from the deployment package, changed tenant content to each tenant database container; and

dropping the current-version shared database container after deployment to each of the multiple tenant database containers has completed.

10. The method of claim 9 , wherein the multiple tenant database containers include a first tenant database container, a second tenant database container, and a third tenant database container; and wherein during deployment of the new version to each of the multiple tenant database containers, the first tenant database container is active and linked to the next-version shared database container, the second tenant database container is inactive and undergoing deployment to the new version, and the third tenant database container is active and linked to the current-version shared database container.

11. The method of claim 10 , further comprising:

creating a backup of the second tenant database container before undergoing deployment of the second tenant database container;

encountering an error during the deployment of the new version to the second tenant database container;

determining that an error resolution process will take longer than a predetermined downtime window for the second tenant database container;

restoring the backup of the second tenant database container, including linking the backup of the second tenant database container to the current-version shared database container; and

ending the downtime window for the second tenant database container so that the second tenant database container is active and linked to the current-version shared database container when the downtime window for the second tenant database container ends.

12. The method of claim 11 , further comprising:

performing the error resolution process while the second tenant database container is active and linked to the current-version shared database container; and

re-attempting deployment of the new version to the second tenant database container.

13. The method of claim 9 , wherein the new version includes changes to a software object, and wherein the multiple tenant database containers include a first tenant database container.

14. The method of claim 13 , wherein before deployment, data for the software object is stored in at least one shared table in the current-version shared database container and the next-version shared database container includes changes to the at least one shared table for the software object.

15. The method of claim 13 wherein:

before deployment, data for the software object is stored in at least one shared table in the current-version shared database container and at least one tenant table in the first tenant database container, and the next-version shared database container includes changes to the at least one shared table for the software object; and

deploying changed tenant content to the first tenant database container includes deploying changes to the at least one tenant table for the software object.

16. The method of claim 13 , wherein before deployment, data for the software object is stored in at least one tenant table in the first tenant database container and deploying changed tenant content to the first tenant database container includes deploying changes to the at least one tenant table for the software object.

17. One or more non-transitory computer-readable media storing instructions which, when executed by at least one processor, cause the at least one processor to perform operations comprising:

receiving a request to deploy a new version of a database system;

receiving a deployment package that includes data for the new version;

installing a next-version shared database container in the database system in parallel to a current-version shared database container;

deploying the new version to each of multiple tenant database containers, wherein deploying the new version to each tenant database container comprises:

individually linking each of the multiple tenant database containers to the next-version shared database container; and

deploying, from the deployment package, changed tenant content to each tenant database container; and

dropping the current-version shared database container after deployment to each of the multiple tenant database containers has completed.

18. The computer-readable media of claim 17 , wherein the multiple tenant database containers include a first tenant database container, a second tenant database container, and a third tenant database container; and wherein during deployment of the new version to each of the multiple tenant database containers, the first tenant database container is active and linked to the next-version shared database container, the second tenant database container is inactive and undergoing deployment to the new version, and the third tenant database container is active and linked to the current-version shared database container.

19. The computer-readable media of claim 18 , wherein the operations further comprise:

creating a backup of the second tenant database container before undergoing deployment of the second tenant database container;

encountering an error during the deployment of the new version to the second tenant database container;

determining that an error resolution process will take longer than a predetermined downtime window for the second tenant database container;

restoring the backup of the second tenant database container, including linking the backup of the second tenant database container to the current-version shared database container; and

ending the downtime window for the second tenant database container so that the second tenant database container is active and linked to the current-version shared database container when the downtime window for the second tenant database container ends.

20. The computer-readable media of claim 19 , wherein the operations further comprise:

performing the error resolution process while the second tenant database container is active and linked to the current-version shared database container; and

re-attempting deployment of the new version to the second tenant database container.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2020
From: AUER, ULRICH; BIRN, IMMO-GERT; HAUCK, RALF-JUERGEN; SCHLARB, UWE; WALTER, WELF; ZIEGLER, TORSTEN; DRIESEN, VOLKER; STORK, CHRISTIAN
To: SAP SE
Reel/Frame 052513/0691 →
Continuity (2)
Continuation 15794368 · Oct 26, 2017
Related Publication 20200257673A1 · Aug 13, 2020
Cited By (3)
US 12,499,116 US 12,541,616 US 12,730,922