Key pattern management in multi-tenancy database systems
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
exact text as granted — not AI-modifiedWhat is claimed is:
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.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.