Messaging Entity Replication for Consistency and Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed computing systems face challenges in maintaining message consistency and reducing latency during node failures, as existing solutions often compromise between consistency and latency, and may result in message loss due to incomplete replication and recreation from durable storage.

Innovation Solution

A messaging system with a primary and secondary messaging entity configuration, where messages are replicated across nodes within a consistent fabric, allowing for acknowledgement-based commit and failover processes, and utilizing a fabric layer for synchronization and fault tolerance, along with in-memory replication and durable storage to enhance consistency and reduce latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If messages are replicated across multiple nodes with acknowledgement-based commit, then message consistency is improved, but latency increases due to waiting for acknowledgements

Engineering Contradiction:
Improvemessage consistencyVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system dynamically adjusts the acknowledgement threshold parameter to balance consistency and latency requirements. Different messaging scenarios can specify different acknowledgement thresholds, allowing the system to adapt between strong consistency (higher threshold) and lower latency (lower threshold) based on the specific messaging needs.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces configurable parameters including acknowledgement threshold, replication factor, and durability settings. These parameters can be adjusted to optimize the trade-off between message consistency and latency for different use cases, allowing flexible tuning of the replication behavior.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If messages are replicated to multiple secondary messaging entities, then fault tolerance is improved, but device complexity increases

Engineering Contradiction:
Improvefault toleranceVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system creates simplified copies of messaging entities (secondary messaging entities) that replicate message storage and basic operations. These copies provide fault tolerance while maintaining a relatively simple structure, as each secondary entity is a straightforward replica rather than a complex distributed coordination mechanism.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The messaging system is segmented into primary and secondary messaging entities with clearly defined roles. The primary entity handles message acceptance and coordination, while secondary entities handle replication and backup, dividing the complexity across multiple components with specific responsibilities.

Inventive Principle:
Principle #1Segmentation

3Reliability

If acknowledgement threshold is increased to ensure consistency, then message consistency is improved, but latency increases due to longer wait time

Engineering Contradiction:
ImproveconsistencyVSAvoidcommit time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The acknowledgement threshold is made dynamic and configurable rather than fixed. Different messaging scenarios can specify different thresholds, allowing the system to optimize between consistency and latency on a per-message or per-topic basis rather than applying a one-size-fits-all approach.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system allows for partial replication scenarios where messages can be committed with fewer than all secondary entities acknowledging. This enables a trade-off where messages can be made available sooner (lower threshold) while still providing some level of consistency and fault tolerance.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9794305B2Consistent messaging with replication
Publication Date: 2017.10.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9794305B2 patent drawing
  • US9794305B2 patent drawing
  • US9794305B2 patent drawing

AI summary

A messaging entity configured in a memory of first node of a plurality communicatively coupled nodes is disclosed. The nodes are included in a distributed computing system. The messaging entity is configured to operate as a secondary messaging entity in a messaging server for the plurality communicatively coupled nodes. The messaging entity is communicatively couple to a primary messaging entity configured in a memory of a second node of the plurality of nodes. The primary messaging entity is configured to store a message; store a copy of the message.