In-Database Application Versioning and Upgrade Mechanism

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveapplication securityVSAvoidsystem stability
Core Design Contradiction:
ReliabilityVSStability of the object's composition

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improveapplication consistencyVSAvoidupdate time
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #25Self-service

3Reliability

If fine-grained security controls are implemented, then data protection and permission management are improved, but system complexity and overhead increase

Engineering Contradiction:
Improvedata protectionVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20240281245A1Application versioning and upgrade
Publication Date: 2024.08.22 SNOWFLAKE INC
  • US20240281245A1 patent drawing
  • US20240281245A1 patent drawing
  • US20240281245A1 patent drawing

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.