IoT Partition Management via Candidate Server Election

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current IoT systems face inefficiencies in electing a primary server and maintaining a sustainable load distribution across a large number of partitions, especially when secondary servers are required, leading to potential server overload and unbalanced loads.

Innovation Solution

A decentralized approach is implemented, where a small set of candidate servers is pre-assigned to each partition, using a consistent datastore protocol to elect a primary server and allowing for efficient replacement, with load balancing strategies that consider fault domains and server loads, ensuring high availability and fault tolerance through independent server evaluations and dynamic reconfiguration.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If current protocols are used to elect a primary server in IoT systems with hundreds of servers and thousands of partitions, then the system can handle the scale, but the election process becomes inefficient and cannot efficiently elect a primary server

Engineering Contradiction:
Improveprimary server election efficiencyVSAvoidserver election speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the large fleet of servers into smaller groups, with each partition having a pre-assigned subset of candidate servers (e.g., 3-5 candidates) from the total fleet. This segmentation transforms the impossible task of electing a primary from hundreds of servers into a manageable election among a small subset, directly resolving the efficiency contradiction.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary action by pre-assigning candidate servers to each partition before the election process begins. The control plane pre-configures which servers are candidates for each partition based on load balancing strategies and fault domain considerations, so that when election is needed, only these pre-selected candidates need to participate, dramatically improving election efficiency.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If load balancing is implemented across hundreds of servers handling thousands of partitions, then sustainable load distribution is desired, but server overload and unbalanced loads occur

Engineering Contradiction:
Improveload distribution sustainabilityVSAvoidload balance maintenance
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system implements continuous feedback mechanisms where servers periodically report their load status to the control plane, and the control plane adjusts partition assignments based on this feedback. The load balancing strategy monitors server health, capacity utilization, and fault domain distribution, dynamically reassigning partitions to maintain balanced loads and prevent server overload.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The load balancing system is dynamic rather than static. The control plane continuously evaluates server conditions and reassigns partitions in real-time based on changing load conditions, server health status, and fault domain requirements. This dynamic adjustment ensures sustainable load distribution even as system conditions change, resolving the contradiction between maintaining reliability and ease of operation.

Inventive Principle:
Principle #15Dynamics

3Reliability

If secondary servers are maintained for each partition to ensure high availability, then fault tolerance is improved, but system complexity increases

Engineering Contradiction:
Improvefault toleranceVSAvoidserver configuration complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system applies local quality by maintaining different roles for different servers within the same partition context. Each partition has one primary server and multiple secondary servers with distinct functions: the primary handles active requests while secondaries stand by for failover. This local differentiation of server roles within partitions provides fault tolerance through clear specialization, managing complexity through structured role assignment rather than uniform configuration.

Inventive Principle:
Principle #3Local quality

4Productivity

If partitions are dynamically moved between servers to balance load, then load sustainability is improved, but partition moves increase system complexity and potential failures

Engineering Contradiction:
Improveload sustainabilityVSAvoidpartition stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system applies preliminary anti-action by pre-configuring multiple candidate servers for each partition before any failure or load imbalance occurs. When the primary server becomes unavailable or overloaded, the system can immediately promote a pre-identified secondary server without needing to search or select from the entire fleet, preventing partition orphaning and reducing the complexity of dynamic repartitioning while maintaining load sustainability.

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentUS10979496B2IoT partition management and load balancing
Publication Date: 2021.04.13 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10979496B2 patent drawing
  • US10979496B2 patent drawing
  • US10979496B2 patent drawing

AI summary

A system includes a plurality of servers, a control plane to determine a first partition of a plurality of devices and to determine a subset of the plurality of servers to assign as candidate servers for the first partition, and a common data store comprising a first stream and a second stream. The control plane is to store, in the first stream, a first message indicating the first partition, the candidate servers, the second stream, and a first message tag, the candidate servers elect a primary server of the first partition from the candidate servers using the first stream, and the elected primary server inserts read and write updates associated with the plurality of devices of the first partition into the second stream.