In-Database Application Package Versioning and Upgrade
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data platforms face challenges in updating applications while they are in use, requiring methods that allow for seamless upgrades and patching without disrupting service, while ensuring security and intellectual property protection.
Innovation Solution
The implementation of an in-database application package and instance with versioned schema, where application instances are upgraded or patched based on application package versions, with fine-grained security controls and the ability to manage versions and upgrades globally, ensuring that consumers have explicit control over permissions and that applications are isolated from their environment.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If application instances are updated while in use, then application functionality is improved, but service disruption occurs
Solution Approach 1:
The system performs preliminary actions by creating backup versions of application instances before applying updates. The version control mechanism captures the current state, and rollback capabilities are prepared in advance, allowing updates to proceed without risking service disruption if issues occur.
Solution Approach 2:
The system creates copies of application instances in different versions (current and updated). Multiple instances can run in parallel with different version states, allowing the system to switch between versions without disruption. The copying mechanism enables A/B testing and gradual rollouts.
2Reliability
If fine-grained security controls are implemented, then security and IP protection are improved, but system complexity increases
Solution Approach 1:
The security control system is segmented into multiple independent components: authentication modules, authorization modules, encryption modules, and audit modules. Each component handles a specific aspect of security, making the overall system more manageable and maintainable despite the fine-grained control requirements.
Solution Approach 2:
The system introduces intermediary components such as security agents, policy enforcement points, and authentication brokers that mediate between application instances and consumer environments. These intermediaries simplify the security implementation by providing standardized interfaces and abstracting the complexity of fine-grained controls.
3Reliability
If version tracking is implemented in call context, then upgrade reliability is improved, but processing overhead increases
Solution Approach 1:
The system extracts version tracking information from the general call context and manages it separately through dedicated version control mechanisms. Version identifiers, metadata, and state information are stored in specialized data structures that are optimized for version management, reducing the burden on general call context processing.
Solution Approach 2:
Version tracking is implemented with local quality by maintaining version information only where and when it is needed. The system tracks versions at the application instance level rather than globally, and only active or recently used instances maintain detailed version metadata. This reduces overall processing overhead while maintaining upgrade reliability.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
An in-database application package and application instance for a data platform. The data platform creates an application instance of an application package having a versioned schema, creates one or more system roles for the application instance, creates a user role and an administrator role for the application instance, creates one or more objects of the application instance based on a versioned schema, and grants one or more use privileges to the one or more roles. Application instances of the application package are upgraded or patched on the data platform based on application package versions. To ensure a proper upgrade or patch, the data platform tracks versions of executing objects of application instances in a call context.