Distributed Fabric Layer for Consistent State Replication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing distributed computation models lack solutions for providing strong consistency guarantees and high availability in the presence of failures or load balancing, often relying on developers to manage restarts, termination, and failover, and typically require intermediate results to use files or specialized stores.

Innovation Solution

The solution involves linking individual compute instances to represent distributed computations, using stateful or stateless computations with input and output queues, and employing message acknowledgments and unique identifiers to mitigate input loss and duplication, while replicating state to ensure consistency and availability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If distributed computation models use files or specialized stores for intermediate results to achieve high availability guarantees, then reliability is improved, but device complexity increases

Engineering Contradiction:
Improvehigh availability guaranteesVSAvoidcomplexity of distributed computation model
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a fabric layer as an intermediary between compute nodes and storage resources. This fabric layer abstracts the complexity of data persistence and recovery, providing high availability guarantees without requiring complex distributed computation models. The fabric layer handles message buffering, state replication, and fault tolerance transparently, allowing compute nodes to focus on computation while the fabric ensures reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If distributed computation models require developers to manage restarts, termination, and failover, then ease of operation deteriorates, but reliability improves

Engineering Contradiction:
Improveconsistency guaranteesVSAvoidease of development
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent implements self-service mechanisms where the distributed computation system automatically manages restarts, termination, and failover without developer intervention. The fabric layer monitors compute node health, detects failures, and triggers automated recovery procedures including restarting failed computations and redistributing workloads. This eliminates the burden of manual fault management while maintaining strong consistency guarantees through automated state recovery and replication.

Inventive Principle:
Principle #25Self-service

3Reliability

If state is replicated at the rendezvous point to ensure consistency when nodes fault or leave, then reliability is improved, but device complexity increases

Engineering Contradiction:
Improvedata consistency guaranteesVSAvoidcomplexity of rendezvous point
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a fabric layer as an intermediary between compute nodes and the rendezvous point, abstracting away the complexity of state replication. The fabric layer handles state synchronization, replication, and consistency maintenance transparently, allowing the rendezvous point to focus on service coordination without managing complex replication protocols. This reduces rendezvous point complexity while maintaining strong consistency guarantees through the fabric's automated state management.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9106480B2Performing computations in a distributed infrastructure
Publication Date: 2015.08.11 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9106480B2 patent drawing
  • US9106480B2 patent drawing
  • US9106480B2 patent drawing

AI summary

The present invention extends to methods, systems, and computer program products for performing computations in a distributed infrastructure. Embodiments of the invention include a general purpose distributed computation infrastructure that can be used to perform efficient (in-memory), scalable, failure-resilient, atomic, flow-controlled, long-running state-less and state-full distributed computations. Guarantees provided by a distributed computation infrastructure can build upon existent guarantees of an underlying distributed fabric in order to hide the complexities of fault-tolerance, enable large scale highly available processing, allow for efficient resource utilization, and facilitate generic development of stateful and stateless computations. A distributed computation infrastructure can also provide a substrate on which existent distributed computation models can be enhanced to become failure-resilient.