# US 10,482,080 B2 · Exchanging shared containers and adapting tenants in multi-tenancy database systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,482,080 B2
- Document ID: US10482080B2
- Status: Granted
- Kind: B2
- Application number: 15/794,362
- Filed: 2017-10-26
- Published: 2019-05-02
- Granted: 2019-11-19
- Earliest claimed: 2017-10-26
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Ulrich Auer; Ralf-Juergen Hauck; Uwe Schlarb; Volker Driesen
- Web page: https://patentgrep.com/patent/US10482080B2

## CPC

- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/211: {Schema design and management}
- G06F 16/2264: {Multidimensional index structures}
- G06F 16/2272: {Management thereof}
- G06F 16/2282: {Tablespace storage structures; Management thereof}
- G06F 16/2386: {Bulk updating operations (data conversion details G06F16/258)}
- G06F 16/2452: Query translation
- G06F 16/24553: {of query operations}
- G06F 16/248: Presentation of query results
- G06F 16/258: {Data format conversion from or to a database}
- G06F 16/28: Databases characterised by their database models, e.g. relational or object models
- G06F 16/951: Indexing; Web crawling techniques
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present disclosure involves systems, software, and computer implemented methods for exchanging shared containers and adapting tenants in database systems. One example method includes receiving a request to deploy a new version of a database system. A deployment package is received that includes new version data. A new shared container is installed in parallel to a current shared container. The new version is deployed to each of multiple tenant containers. Each of the tenant containers is individually linked to the new shared container, including dropping at least one view in each respective tenant container to shared content in the current shared container and adding at least one view in each respective tenant container to the updated shared content in the new shared container. Changed tenant content is deployed to each tenant container. The current shared container is dropped after deployment to each of the multiple tenant containers has completed.

## Claims

### Claim 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, the shared content including at least one read-only table; 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 at least one view to the at least one read-only table; 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, including dropping at least one view in each respective tenant database container to shared content in the current-version shared database container and adding at least one new view in each respective tenant database container to the updated shared content in 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 2)

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.

### Claim 4 (depends on 3)

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.

### Claim 5 (depends on 1)

The system of claim 1, wherein the new version includes changes to a software object.

### Claim 6 (depends on 5)

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.

### Claim 7 (depends on 5)

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.

### Claim 8 (depends on 5)

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.

### Claim 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, including dropping at least one view in each respective tenant database container to shared content in the current-version shared database container and adding at least one new view in each respective tenant database container to the updated shared content in 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.

### Claim 10 (depends on 9)

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.

### Claim 11 (depends on 10)

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.

### Claim 12 (depends on 11)

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.

### Claim 13 (depends on 9)

The method of claim 9, wherein the new version includes changes to a software object.

### Claim 14 (depends on 13)

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.

### Claim 15 (depends on 13)

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.

### Claim 16 (depends on 13)

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.

### Claim 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, including dropping at least one view in each respective tenant database container to shared content in the current-version shared database container and adding at least one new view in each respective tenant database container to the updated shared content in 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.

### Claim 18 (depends on 17)

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.

### Claim 19 (depends on 18)

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.

### Claim 20 (depends on 19)

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.
