In-Database Application Versioning and Upgrade Mechanism
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data platforms face challenges in updating applications while they are in use, requiring methodologies that allow for seamless updates, fine-grained security controls, and global distribution without impacting existing instances, while protecting consumer data and intellectual property.
Innovation Solution
The proposed solution involves a data platform architecture that includes a compute service manager and execution platform, enabling in-database application updates, fine-grained security, and global distribution, with mechanisms for versioning, pinning, and asynchronous upgrades, ensuring that applications can be updated without disrupting ongoing operations and providing explicit control over permissions and isolation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If applications are updated while in use, then application functionality and security are improved, but system stability and data consistency may deteriorate
Solution Approach 1:
The system performs preliminary versioning and preparation of application updates before they are applied. Application versions are pre-defined and staged, allowing the system to prepare upgrade paths in advance without disrupting running applications. This ensures that updates are ready and validated before deployment, maintaining system stability while enabling security improvements.
Solution Approach 2:
The system implements dynamic version management where applications can transition between versions without complete shutdown. Multiple versions can coexist, and the system dynamically selects which version to execute based on the current application state. This dynamic approach allows updates to be applied while maintaining system stability through controlled version transitions.
2Stability of the object's composition
If application updates are propagated globally, then application consistency across distributed instances is improved, but update time and system downtime may increase
Solution Approach 1:
The system segments the global update process into independent, manageable units. Each application instance can be updated independently rather than requiring coordinated global updates. This segmentation allows parallel processing of updates across multiple instances, reducing total update time while maintaining consistency through version control.
Solution Approach 2:
Application instances perform self-upgrades by automatically detecting and applying version updates without requiring manual intervention or complete system shutdown. The system enables instances to service their own update needs, reducing the time and coordination required for global propagation while maintaining consistency through centralized version management.
3Reliability
If fine-grained security controls are implemented, then data protection and permission management are improved, but system complexity and overhead increase
Solution Approach 1:
The system implements fine-grained security controls at the local level of individual application instances and data objects rather than applying uniform global controls. Each application version and instance can have customized permission sets and security policies tailored to its specific requirements. This local quality approach provides comprehensive data protection while reducing overall system complexity by allowing selective application of security measures.
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.


