Upgrade Controller Locking for Node and Pod Availability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The challenge of coordinating upgrades in cloud infrastructure to prevent data unavailability and service disruptions when multiple upgrade controllers operate independently, particularly in scenarios where data is replicated across multiple nodes, is addressed.

Innovation Solution

Implementing a locking mechanism using a lock store and lock API to synchronize and coordinate upgrades by pod and node upgrade controllers, ensuring exclusive access to node pools during upgrades, thereby preventing concurrent upgrades that could lead to data unavailability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple upgrade controllers operate independently to upgrade nodes and pods, then upgrade flexibility and parallelism are improved, but service disruption and data unavailability increase

Engineering Contradiction:
Improveupgrade parallelismVSAvoidservice availability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

A lock store is introduced as an intermediary component between multiple upgrade controllers and the node pool. The lock store maintains lock records that coordinate upgrades by allowing one controller to acquire exclusive access (lock) on the node pool, preventing other controllers from simultaneously upgrading the same resources. This mediator enables parallel upgrade operations across different node pools while ensuring sequential, conflict-free upgrades within each node pool, thus maintaining service availability without sacrificing overall upgrade productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If upgrades are performed without coordination, then upgrade speed is improved, but data unavailability and service disruptions worsen

Engineering Contradiction:
Improveupgrade speedVSAvoiddata unavailability
Core Design Contradiction:
SpeedVSObject-affected harmful factors

Solution Approach 1:

Before an upgrade controller begins upgrading nodes or pods in a node pool, it performs a preliminary action by acquiring a lock on that node pool through the lock store. This lock acquisition happens in advance, ensuring exclusive access rights are established before any upgrade operations commence. The preliminary locking action prevents other controllers from initiating conflicting upgrades, thereby maintaining fast upgrade execution while eliminating data unavailability caused by uncoordinated concurrent upgrades.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If a locking mechanism is implemented to coordinate upgrades, then service availability is improved, but system complexity increases

Engineering Contradiction:
Improveservice availabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The locking and coordination logic is extracted from the upgrade controllers themselves and placed into a separate, dedicated lock store component. This extraction allows the upgrade controllers to remain simple and focused on their primary upgrade functions, while the complex lock management (acquiring, releasing, and coordinating locks) is handled by the specialized lock store. The lock store communicates through simple lock records and API calls, providing sophisticated coordination functionality without increasing the complexity of the upgrade controllers themselves, thus maintaining service availability while managing system complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS12517721B2Mechanisms to implement controlled upgrades
Publication Date: 2026.01.06 SALESFORCE INC
  • US12517721B2 patent drawing
  • US12517721B2 patent drawing
  • US12517721B2 patent drawing

AI summary

Techniques are disclosed pertaining to performing upgrades by upgrade controllers. A node upgrade controller determines to upgrade a first set of nodes, of a plurality of nodes, on which executes a first set of pods that facilitate access to an instance of a particular component. The node upgrade controller obtains a lock on the plurality of nodes to prevent a pod upgrade controller from upgrading a second set of pods that execute on a second set of the plurality of nodes and facilitate access to another instance of the particular component. The unavailability of the first and second sets of pods causes a requisite number of instances of the particular component to be unavailable. The node upgrade controller upgrades the first set of nodes and releases the lock to allow the pod upgrade controller to obtain a lock on the plurality of nodes.