# US 9,519,675 B2 · Data access management during zero downtime upgrade

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

- Number: US 9,519,675 B2
- Document ID: US9519675B2
- Status: Granted
- Kind: B2
- Application number: 14/504,241
- Filed: 2014-10-01
- Published: 2016-04-07
- Granted: 2016-12-13
- Earliest claimed: 2014-10-01
- Assignees: Sap SE
- Applicants: Juergen Specht; Lars-Eric Biewald; Heiko Konrad; Steffen Meissner; Wieland Hoprich; Volker Driesen
- Inventors: Juergen Specht; Lars-Eric Biewald; Heiko Konrad; Steffen Meissner; Wieland Hoprich; Volker Driesen
- Web page: https://patentgrep.com/patent/US9519675B2

## CPC

- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 8/656: while running
- G06F 16/211: {Schema design and management}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A zero downtime upgrade procedure upgrading a source system to a target system is initiated that prepares software for the target system in parallel to the operation of the source system. As part of the upgrade procedure, source tables of the source system are renamed. Thereafter, the renamed source tables are cloned for the target system. Further, the renamed source tables are equipped with database triggers to transfer data from the renamed source tables to the cloned tables used by the source system according to a source database schema. Next, the target tables are generated that include updated software content for later use by the target system while the source tables are used via a bridge database schema. Tables can then be shared between the source database schema accessed via the bridge database schema and the target system.

## Claims

### Claim 1

A method comprising:
initiating a zero downtime upgrade procedure upgrading a source system to a target system that prepares software for the target system in parallel to the operation of the source system;
renaming source tables of the source system;
cloning the renamed source tables for the target system;
equipping the renamed source tables with database triggers to transfer data from the renamed source tables to the cloned tables used by the source system according to a source database schema;
generating the target tables comprising updated software content for later use by the target system while the source tables are used via a bridge database schema; and
sharing tables between the source database schema accessed via the bridge database schema and the target system.

### Claim 2 (depends on 1)

The method of claim 1, wherein restricting access to at least one table other than the cloned tables comprises:
determining which of a plurality of a tables should have restricted access during the upgrade procedure;
generating a names table comprising runtime objects corresponding to those tables;
deleting runtime objects from the names table that cannot be accessed during the upgrade; and
adding runtime objects to the names table corresponding to those tables that are determined not to be able to be accessed during the upgrade after completion of the upgrade procedure.

### Claim 3 (depends on 2)

The method of claim 2, wherein the names table comprises a metadata declaration for each listed runtime object.

### Claim 4 (depends on 3)

The method of claim 3, wherein the names table comprises field names and information types for each listed runtime object.

### Claim 5 (depends on 1)

The method of claim 1, wherein the restricted access prevents both read and write accesses to the corresponding tables.

### Claim 6 (depends on 1)

The method of claim 1 further comprising:
logging attempts to access the tables with restricted access in a logging table.

### Claim 7 (depends on 6)

The method of claim 6, wherein the logging comprises storing the corresponding database table name, the accessed key, and a current timestamp.

### Claim 8 (depends on 6)

The method of claim 6, wherein there is a dedicated logging table for each table for which access is requested.

### Claim 9 (depends on 6)

The method of claim 6, wherein there is a single logging table for each of a plurality of tables for which access is requested.

### Claim 10 (depends on 1)

The method of claim 1, wherein restricting access to at least one table other than the cloned tables comprises:
preventing both read and write access to the at least one table.

### Claim 11 (depends on 1)

The method of claim 1, wherein restricting access to at least one table other than the cloned tables comprises:
preventing write access to the at least one table while allowing read access to the at least one table.

### Claim 12 (depends on 11)

The method of claim 11, further comprising: testing the target system prior to completing the upgrade procedure.

### Claim 13 (depends on 1)

The method of claim 1, wherein restricting access to at least one table other than the cloned tables comprises:
determining which of a plurality of a tables should have restricted write access during the upgrade procedure;
generating, for each table for which it was determined that should have restricted write access, a database trigger which prevents write accesses to the table; and
removing the database triggers preventing write access to the tables after completion of the upgrade procedure.

### Claim 14

A non-transitory computer program product storing instructions, which when executed by at least one data processor forming part of at least one computing system, result in operations comprising:
initiating a zero downtime upgrade procedure upgrading a source system to a target system that prepares software for the target system in parallel to the operation of the source system;
renaming source tables of the source system;
cloning the renamed source tables for the target system;
equipping the renamed source tables with database triggers to transfer data from the renamed source tables to the cloned tables used by the source system according to a source database schema;
generating the target tables comprising updated software content for later use by the target system while the source tables are used via a bridge database schema; and
sharing tables between the source database schema accessed via the bridge database schema and the target system.

### Claim 15 (depends on 14)

The computer program product of claim 14, wherein restricting access to at least one table other than the cloned tables comprises:
determining which of a plurality of a tables should have restricted access during the upgrade procedure;
generating a names table comprising runtime objects corresponding to those tables;
deleting runtime objects from the names table that cannot be accessed during the upgrade; and
adding runtime objects to the names table corresponding to those tables that are determined not to be able to be accessed during the upgrade after completion of the upgrade procedure.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the names table comprises a metadata declaration for each listed runtime object and comprises field names and information types for each listed runtime object.

### Claim 17 (depends on 14)

The computer program product of claim 14, wherein restricting access to at least one table other than the cloned tables comprises:
determining which of a plurality of a tables should have restricted write access during the upgrade procedure;
generating, for each table for which it was determined that should have restricted write access, a database trigger which prevents write accesses to the table; and
removing the database triggers preventing write access to the tables after completion of the upgrade procedure.

### Claim 18

A system comprising:
at least one data processor; and
memory storing instructions, which when executed by the at least one data processor, result in operations comprising:
initiating a zero downtime upgrade procedure upgrading a source system to a target system that prepares software for the target system in parallel to the operation of the source system;
renaming source tables of the source system;
cloning the renamed source tables for the target system;
equipping the renamed source tables with database triggers to transfer data from the renamed source tables to the cloned tables used by the source system according to a source database schema;
generating the target tables comprising updated software content for later use by the target system while the source tables are used via a bridge database schema; and
sharing tables between the source database schema accessed via the bridge database schema and the target system.

### Claim 19 (depends on 18)

The system of claim 18, wherein restricting access to at least one table other than the cloned tables comprises:
determining which of a plurality of a tables should have restricted access during the upgrade procedure;
generating a names table comprising runtime objects corresponding to those tables;
deleting runtime objects from the names table that cannot be accessed during the upgrade; and
adding runtime objects to the names table corresponding to those tables that are determined not to be able to be accessed during the upgrade after completion of the upgrade procedure.

### Claim 20 (depends on 19)

The system of claim 19, wherein restricting access to at least one table other than the cloned tables comprises:
determining which of a plurality of a tables should have restricted write access during the upgrade procedure;
generating, for each table for which it was determined that should have restricted write access, a database trigger which prevents write accesses to the table; and
removing the database triggers preventing write access to the tables after completion of the upgrade procedure.
