Distributed Component Activation and Reconciliation in Clusters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed computing systems, managing components across multiple server clusters is challenging due to race conditions and network partitions, which can lead to uncertainty in the availability and consistency of single-activation components, especially when clusters are geographically distributed and communication links fail.

Innovation Solution

A protocol is introduced that handles race conditions and partitioned clusters by allowing multiple activations in high-availability mode, with reconciliation of component instances when clusters reconnect, and ensuring consistency through a quorum-based mechanism, allowing clusters to create components independently or optimistically based on usage patterns.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a component is activated in one cluster, then single-activation consistency is maintained, but availability decreases during network partitions

Engineering Contradiction:
Improvecomponent consistencyVSAvoidsystem availability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically adjusts component activation behavior based on network partition detection. When partitions are detected, the system transitions from strict single-activation mode to allowing duplicate activations in isolated clusters, and automatically reconciles duplicates when partitions heal.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system proactively handles potential duplicate activations by implementing a reconciliation mechanism that activates before conflicts arise. When clusters reconnect after partitioning, the system automatically detects and resolves duplicates through state comparison and coordinated deactivation.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

2Productivity

If duplicate component activations are allowed during partitions, then availability is maintained, but system complexity increases

Engineering Contradiction:
Improvesystem availabilityVSAvoidcomponent management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements feedback mechanisms where clusters report their component activation states to a coordination service. This feedback loop enables automatic detection of duplicates and triggers reconciliation processes, reducing the perceived complexity for application developers.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

A cluster coordination service acts as an intermediary between distributed clusters, managing the complexity of duplicate detection and reconciliation. This mediator handles the intricate logic of partition detection, duplicate identification, and coordinated deactivation, isolating complexity from application logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If clusters communicate constantly to prevent duplicates, then consistency is maintained, but network overhead increases

Engineering Contradiction:
Improvecomponent consistencyVSAvoidnetwork overhead
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

Instead of continuous communication, the system uses periodic coordination triggered by specific events such as partition detection or cluster reconnection. This event-driven approach reduces network overhead by communicating only when necessary to maintain consistency.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system performs preliminary duplicate detection checks before allowing activations in partitioned clusters. By checking activation status with other clusters before creating new instances, the system prevents duplicates proactively, reducing the need for extensive post-partition reconciliation traffic.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11616757B2Distributed components in computing clusters
Publication Date: 2023.03.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11616757B2 patent drawing
  • US11616757B2 patent drawing
  • US11616757B2 patent drawing

AI summary

The subject disclosure is directed towards components in different server clusters, e.g., comprising software components such as components of a distributed computing system. Components are available for use by distributed computing system applications, yet managed by the distributed computing system runtime such that only a single instance can be activated and exist within communicating (non-partitioned) clusters. Also described is recovery from a situation in which no longer partitioned clusters each have created the same component.