Connection State Migration for Uninterrupted IoT Service

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

IoT devices with long-lived connections to servers face disruptions and increased workload when servers reboot or become overloaded, leading to data loss and increased energy consumption due to the need for clients to reconnect and re-negotiate connections.

Innovation Solution

Implementing a system that migrates long-lived connections and application states between compute hosts without disconnecting clients, allowing seamless continuation of service by transferring TCP and TLS states, and using a routing component to manage IP and port changes, ensuring clients remain connected and unaware of the host change.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a server maintains a large number of long-lived connections with many different client devices, then the server can continuously send data to connected clients without clients continuously polling, but a significant workload is placed on the particular server when clients transmit data within a short period

Engineering Contradiction:
Improvedata transmission efficiencyVSAvoidserver workload
Core Design Contradiction:
ProductivityVSPower

Solution Approach 1:

The patent segments the server functionality by introducing multiple compute hosts (first compute host, second compute host) that can each maintain long-lived connections with clients. This distributes the workload across multiple segments rather than concentrating it on a single server, allowing the system to handle large numbers of connections without overloading any single host.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic connection migration where connections can be moved between compute hosts based on workload conditions. The connection state and application state are transferred between hosts, allowing the system to dynamically balance load while maintaining continuous service. This dynamic redistribution prevents any single server from becoming overloaded.

Inventive Principle:
Principle #15Dynamics

2Ease of manufacture

If a server is rebooted, then the server can be maintained or updated, but client devices with long-lived connections to the server lose the connection and must re-establish it, causing data loss and increased energy consumption

Engineering Contradiction:
Improveserver maintenance capabilityVSAvoidconnection continuity
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent implements preliminary connection migration before server reboot. The connection state and application state are transferred from the first compute host to the second compute host before the first host is taken offline for maintenance. This preliminary action ensures that when the first host reboots, the client connections are already established at the second host, preventing connection loss.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses a routing component as an intermediary that manages connection routing between clients and compute hosts. During migration, the routing component directs traffic to the appropriate host and facilitates the transfer of connection state. This intermediary abstracts the complexity of connection management from clients, allowing seamless host transitions without client awareness.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If connections are migrated between compute hosts, then service availability is maintained without client disconnection, but the system complexity increases due to state transfer and routing management

Engineering Contradiction:
Improveservice availabilityVSAvoidconnection management system
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent uses copying of connection state and application state from the first compute host to the second compute host during migration. Rather than complex real-time synchronization, the state is copied to the target host before switching connections. This copying approach simplifies the migration process while ensuring the receiving host has all necessary information to continue the connection seamlessly.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The routing component serves as an intermediary that manages the complexity of connection migration. It handles the routing decisions, state transfer coordination, and host selection, isolating this complexity from both the clients and the compute hosts themselves. This mediator approach centralizes the management complexity in a dedicated component rather than distributing it throughout the system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10778585B1Connection and application state migration for uninterrupted service availability
Publication Date: 2020.09.15 AMAZON TECH INC
  • US10778585B1 patent drawing
  • US10778585B1 patent drawing
  • US10778585B1 patent drawing

AI summary

Compute hosts and a routing system may be used for connection and application state migration for uninterrupted service availability. In response to an indication to transfer a connection from a particular compute host to another compute host, the particular compute host obtains a connection state and an application state for the connection and sends the connection state and the application state to the other compute host. The connection state includes information for a connection-oriented protocol and the application state includes information for an application-layer protocol. The other compute host receives and applies the connection state and the application state in order to establish a termination point to terminate the connection at the other compute host instead of at the particular compute host. The data for the connection is routed to the other compute host, wherein the client is unaware of transfer of the connection to the other compute host.