Cloned Metadata Container for Asynchronous Database Upgrades
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing database systems face challenges in upgrading multitenant database systems without disrupting service, particularly when applying major software releases, as traditional methods can cause service interruptions and data inconsistencies.
Innovation Solution
The solution involves creating a cloned metadata reference container that allows live access to the original metadata during upgrades, enabling concurrent execution of maintenance requests on the original metadata while serving read requests from the cloned metadata, ensuring continuous service and data consistency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional database upgrade methods are used, then software version is updated, but service interruption occurs and data consistency is compromised
Solution Approach 1:
The database system is segmented into two distinct metadata containers: the original metadata container and a cloned metadata container. This segmentation allows independent operation of each container, enabling upgrades to be performed on one while the other continues to serve read requests, thus maintaining service continuity during software version transitions.
Solution Approach 2:
A metadata pointer acts as an intermediary between the database system and the metadata containers. This pointer can be redirected to point to either the original or cloned metadata container, enabling seamless switching between versions and ensuring service continuity during upgrades without direct intervention in the running database operations.
2Adaptability or versatility
If metadata is updated during upgrade, then software functionality is improved, but read access consistency is disrupted
Solution Approach 1:
A cloned metadata container is created as a copy of the original metadata container before the upgrade. This clone preserves the pre-upgrade state and can serve read requests that require consistency with the previous version, while the original container undergoes updates. This copying mechanism prevents data access inconsistency during the upgrade process.
Solution Approach 2:
The cloned metadata container is created in advance before the upgrade process begins. This preliminary action ensures that a valid, consistent metadata state is already available to handle read requests during the upgrade, preventing any loss of data access consistency while software functionality is being improved.
3Adaptability or versatility
If upgrade process is performed, then software release is updated, but maintenance time is extended
Solution Approach 1:
The system maintains continuous useful action by allowing read requests to be served from the cloned metadata container while the original container undergoes upgrade operations. This parallel operation ensures that database reading functionality continues uninterrupted, reducing the effective maintenance time and allowing software releases to be updated without extending service interruption periods.
Data Source
AI summary
Techniques are provided for diverting, to cloned metadata, live access to original metadata of an application container that is being concurrently upgraded. In an embodiment, a database server stores, within an application container of an application, original metadata that defines objects for use by pluggable databases of the application. The database server receives a maintenance request to adjust the original metadata. The database server creates, in response to receiving the maintenance request, a reference container that contains cloned metadata that is a copy of the original metadata. The database server receives, during or after creating the reference container, a read request to read one of the objects. The database server concurrently performs both of: executing the maintenance request upon the original metadata, and executing the read request upon the cloned metadata of the reference container.


