Plugin Registry Live Update Reference Counting
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software updates often disrupt active user sessions by requiring clients to end and restart, leading to an inconsistent user experience and inefficiencies, especially when users cannot afford to wait for all sessions to end before applying updates.
Innovation Solution
A system that monitors reference counts of software versions in use, allowing both old and new versions to coexist during updates, ensuring seamless transitions and maintaining consistency for active user sessions by keeping the old version available until no sessions rely on it.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software updates are pushed to clients, then the software version is improved, but active user sessions are disrupted requiring restart
Solution Approach 1:
The system segments the software update process by maintaining separate version instances - old and new versions coexist independently in the registry. Each version is tracked separately with its own reference count, allowing updates to be applied to new sessions while existing sessions continue using the old version without disruption.
Solution Approach 2:
The system performs preliminary actions by pre-loading and maintaining multiple versions of the plugin package in the shared registry before any session ends. The old version is kept available in advance, ensuring that when a user is actively using it, the version remains accessible without requiring session restart or update waiting.
2Productivity
If software updates are applied immediately, then the latest features are available, but user experience becomes inconsistent
Solution Approach 1:
The system applies local quality by providing different software versions to different user sessions based on their needs. Active sessions continue using the stable old version they were designed for, while new sessions can access the updated new version. This localized version assignment maintains experience consistency for each user group while still enabling update propagation.
3Ease of operation
If updates wait for all sessions to end, then service loss is avoided, but update efficiency decreases
Solution Approach 1:
The system enables continuity of useful action by allowing the update process to continue concurrently with active user sessions. Instead of waiting for sessions to end, the new version is uploaded and made available in the shared registry immediately, while the reference count mechanism ensures existing sessions continue uninterrupted. This eliminates the sequential dependency and enables parallel operation.
4Quantity of substance
If old version is removed to free resources, then system resources are optimized, but active sessions using old version are affected
Solution Approach 1:
The system implements feedback through the reference count mechanism that continuously monitors how many active sessions are using each version. The old version is only removed when the reference count reaches zero, providing real-time feedback about session dependency. This feedback loop ensures resource optimization occurs only when safe, preventing any disruption to active sessions while maintaining efficient resource utilization.
Data Source
AI summary
Embodiments can enable the uploading of a newer version of a plugin package to a plugin service without affecting an existing user session that is using an older version of the plugin package. When a new user session begins, the plugin service can monitor one or more plugin packages and the versions used during the new user session. Throughout the user session, the plugin service continues to make the plugin packages available to the user regardless of newer versions being uploaded to the plugin service. In the meantime, multiple clients with different user sessions may be using different and possibly newer versions of the plugin packages at the same time. The plugin service can remove an older version of a plugin package when it determines that there are no longer any active user sessions utilizing the older version of the plugin package.


