In-Database Application Versioning and Upgrade
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data platforms face challenges in updating applications while they are in use, requiring methodologies that allow for fine-grained security controls, protection of consumer data and intellectual property, and seamless upgrades without disrupting existing instances.
Innovation Solution
The implementation of a compute service manager and execution platform that enables in-database application updates, global distribution, and fine-grained security, allowing for versioning and asynchronous upgrades of applications, ensuring that only when no instances are using the previous version can the upgrade proceed, and maintaining atomic visibility of schema changes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If applications are updated while in use on data platforms, then application functionality and security can be improved, but system stability and data protection may be compromised
Solution Approach 1:
The system performs preliminary actions by creating a new version of the application package and its associated schema before the old version is fully removed. The new version is prepared in advance and kept in a pending state, allowing validation and verification before activation. This ensures that updates are applied systematically rather than disruptively, maintaining system stability while improving application security and functionality.
Solution Approach 2:
The system implements a versioning mechanism that maintains both old and new application versions simultaneously during the transition period. This cushioning approach allows the system to buffer the impact of updates by having fallback options available. If the new version encounters issues, the system can revert to the previous version, thus protecting system stability while still enabling security improvements.
2Stability of the object's composition
If application upgrades are performed synchronously, then consistency is maintained, but service disruption and downtime occur
Solution Approach 1:
The system dynamically manages application version transitions by allowing multiple versions to coexist temporarily. The upgrade process is made dynamic through asynchronous operations where the new version can be deployed in the background while the old version continues to serve requests. This dynamic approach maintains schema consistency through version tracking while eliminating service disruption, as the system can switch between versions without downtime.
3Adaptability or versatility
If version control is implemented for application packages, then upgrade management is improved, but system complexity increases
Solution Approach 1:
The system implements a universal versioning framework that handles multiple application packages and schemas through a common mechanism. The version control system serves multiple functions: tracking version numbers, managing schema associations, coordinating upgrades, and maintaining compatibility. This multi-functional approach improves adaptability for version management while avoiding the complexity of separate control mechanisms for each application, as a single unified system handles all versioning needs.
Data Source
AI summary
Methodologies for upgrading and patching an in-database application package and its application instances. A data platform determines a number of objects of an application instance running on the data platform at a previous version level of an application package of the application instance. In response to determining the number of objects of the application package running on the data platform at the previous version level of the application package is one or more, the data platform continues determining the number of objects running on the data platform at a previous version level of the application package. In response to determining the number of objects of the application instance running on the data platform at the previous version level of the application package is none, the data platform upgrades the application instance to the new version of the application package.


