Low-downtime and zero-downtime upgrades of database-centric applications
First Claim
1. A method comprising:
- concurrently maintaining metadata defining an old edition of one or more objects within a database and metadata defining a new edition of the same one or more objects within the database;
concurrently maintaining as a view, referenced by a particular view label, an old view edition of the view, associated by said metadata with the old edition, and a new view edition of the view, associated by said metadata with the new edition;
wherein the old view edition defines a view column, referenced by a view column label, to be mapped to a first column in a table in the database;
wherein the new view edition defines the same view column, referenced by the same view column label, to be mapped to a second column that is different than the first column and that is in the table in the database; and
wherein the second column comprises data values that have been calculated based on corresponding data values in the first column;
executing a first query that references the view by the particular view label and that references the view column by the view column label, wherein executing the first query includes;
in response to determining that the first query is associated with the new edition;
accessing the view column through the new view edition, therebyaccessing data in the second column in the table; and
performing the first query by at least accessing the view column through the second column; and
concurrently to executing the first query, executing a second query that references the view by the particular view label and that references the view column by the view column label, wherein executing the second query includes;
in response to determining that the second query is associated with the old edition;
accessing the view column through the old view edition, thereby accessing data in the first column in the table; and
performing the second query by at least accessing the view column through the first column; and
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
A database may facilitate zero-downtime upgrades by concurrently maintaining multiple editions of database objects for use by both pre-upgrade and post-upgrade clients of a database application. Operations performed within the database are associated with an edition based on, for example, an initiating client or transaction. When an operation references an object or data, the database automatically performs the operation using the object or data associated with the edition with which the operation is itself associated. The database may determine the associated edition without explicit identification of the associated edition in a query or in code. Thus, no client or stored procedure code changes are necessary to reflect a new edition added during an update. Data changes in one edition may be automatically and immediately propagated to the other edition through the use of cross-edition triggers, thereby allowing both pre-upgrade and post-upgrade clients to remain fully functional throughout an upgrade.
-
Citations
22 Claims
-
1. A method comprising:
-
concurrently maintaining metadata defining an old edition of one or more objects within a database and metadata defining a new edition of the same one or more objects within the database; concurrently maintaining as a view, referenced by a particular view label, an old view edition of the view, associated by said metadata with the old edition, and a new view edition of the view, associated by said metadata with the new edition; wherein the old view edition defines a view column, referenced by a view column label, to be mapped to a first column in a table in the database; wherein the new view edition defines the same view column, referenced by the same view column label, to be mapped to a second column that is different than the first column and that is in the table in the database; and wherein the second column comprises data values that have been calculated based on corresponding data values in the first column; executing a first query that references the view by the particular view label and that references the view column by the view column label, wherein executing the first query includes; in response to determining that the first query is associated with the new edition; accessing the view column through the new view edition, thereby accessing data in the second column in the table; and performing the first query by at least accessing the view column through the second column; and concurrently to executing the first query, executing a second query that references the view by the particular view label and that references the view column by the view column label, wherein executing the second query includes; in response to determining that the second query is associated with the old edition;
accessing the view column through the old view edition, thereby accessing data in the first column in the table; andperforming the second query by at least accessing the view column through the first column; and wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 21)
-
-
11. One or more non-transitory computer-readable storage media storing instructions that, when executed by one or more computing devices, cause:
-
concurrently maintaining metadata defining an old edition of one or more objects within a database and metadata defining a new edition of the same one or more objects within the database; concurrently maintaining as a view, referenced by a particular view label, an old view edition of the view, associated by said metadata with the old edition, and a new view edition of the view, associated by said metadata with the new edition; wherein the old view edition defines a view column, referenced by a view column label, to be mapped to a first column in a table in the database; wherein the new view edition defines the same view column, referenced by the same view column label, to be mapped to a second column that is different than the first column and that is in the table in the database; and wherein the second column comprises data values that have been calculated based on corresponding data values in the first column; executing a first query that references the view by the particular view label and that references the view column by the view column label, wherein executing the first query includes; in response to determining that the first query is associated with the new edition; accessing the view column through the new view edition, thereby accessing data in the second column in the table; and performing the first query by at least accessing the view column through the second column; and concurrently to executing the first query, executing a second query that references the view by the particular view label and that references the view column by the view column label, wherein executing the second query includes; in response to determining that the second query is associated with the old edition;
accessing the view column through the old view edition, thereby accessing data in the first column in the table; andperforming the second query by at least accessing the view column through the first column. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 22)
-
Specification