Sticky Routing for Data Consistency in Distributed Services

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Sequential service requests from a user may be routed to different data centers, leading to inconsistencies in data versions, affecting user experience and confidence in online services supported by multiple operations centers.

Innovation Solution

Implementing sticky routing, where all service connections from a user's devices are routed to a single data center, ensuring all data modifications are applied to one repository, eliminating version inconsistencies across different connections.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If requests are routed to different data centers based on proximity or load distribution, then service availability and load balancing are improved, but data consistency and user experience deteriorate

Engineering Contradiction:
Improveservice availabilityVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system segments user sessions by creating sticky routing groups that associate specific user devices with specific data centers. This segmentation maintains data consistency within each segment while allowing different segments to be distributed across multiple data centers, thus preserving both data consistency and service availability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a sticky routing mechanism as an intermediary layer between users and data centers. This intermediary maintains routing state information and ensures that user requests are consistently directed to the same data center, resolving the data consistency issue while preserving load distribution capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If load distribution across multiple data centers is implemented, then system capacity and fault tolerance are improved, but data version consistency worsens

Engineering Contradiction:
Improvesystem capacityVSAvoiddata version consistency
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The system performs preliminary routing decisions by assigning user devices to specific data centers before requests are processed. This preliminary assignment ensures that all subsequent requests from the same user are directed to the same data center, preventing data version inconsistencies while maintaining the ability to distribute load across multiple centers.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The sticky routing system dynamically adjusts routing decisions based on user session state. While maintaining consistent routing for individual users, the system can dynamically redistribute load across data centers by creating new sticky routing associations, thus achieving both data consistency and system adaptability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8751661B1Sticky routing
Publication Date: 2014.06.10 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8751661B1 patent drawing
  • US8751661B1 patent drawing
  • US8751661B1 patent drawing

AI summary

A system and method are provided for sticky routing of a user's service requests and connections to a distributed service hosted by multiple data centers. Sticky routing data are generated when a user first connects, to include member ID, preferred data center, a user bucket associated with one data center, a generation of the bucket, a generation of the user's sticky routing data, and timing information identifying a time of issue and/or a time of expiration of the routing data. A user bucket is either online (accepts new users; their requests are routed to the associated data center), offline (not accepting new users; existing users are expelled and must join a different bucket), or closed (not accepting new users; existing users' requests continue to be routed to the associated data center). All of a user's requests, from all devices, are thus routed to one data center, based on member ID.