Programmable Switch Cache Directory Replication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current distributed caching systems face challenges in achieving fault-tolerant and coherent cache directory management, particularly in large-scale data centers, where synchronizing replicas and maintaining cache coherence across hardware failures is complex and performance-intensive.

Innovation Solution

The implementation of programmable switches with centralized data coherency management, using global cache directories and backup directories, along with logical identifiers for active clients, ensures quick recovery and scalability by maintaining cache coherence and updating cache directories efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If replication is used in distributed systems to provide fault tolerance for hardware failures, then reliability is improved, but device complexity increases due to the difficulty of synchronizing replicas

Engineering Contradiction:
Improvefault toleranceVSAvoidreplica synchronization complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the cache directory into multiple replicas distributed across different network locations. Each replica maintains a portion of the cache directory information, allowing the system to provide fault tolerance while managing synchronization complexity through distributed segmentation rather than centralized management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism for replica synchronization that mediates between cache directory updates and replica propagation. This intermediary layer manages the complexity of keeping replicas synchronized by providing a standardized interface for updates and handling the propagation logic, thereby reducing the overall system complexity while maintaining reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If cache directory replicas are synchronized to ensure fault tolerance, then reliability is improved, but system performance deteriorates due to the complexity of coherency protocols

Engineering Contradiction:
Improvefault toleranceVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary actions by pre-synchronizing cache directory replicas before failures occur. Update operations are propagated to replicas in advance, so that when a failure happens, the system can quickly failover to a synchronized replica without performance degradation. This preliminary synchronization ensures both fault tolerance and maintains system performance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying mechanisms to replicate cache directory information across multiple nodes. Instead of complex real-time synchronization protocols, the system creates and maintains copies of the cache directory state, allowing fast failure recovery by switching to a pre-existing copy, thereby maintaining high system performance while ensuring fault tolerance.

Inventive Principle:
Principle #26Copying

3Reliability

If consensus between cache directory replicas is enabled quickly for fault tolerance, then reliability is improved, but device complexity increases

Engineering Contradiction:
Improvequick recoveryVSAvoidconsensus mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The cache directory replicas perform self-service by autonomously maintaining their own synchronization state and detecting failures independently. Each replica can independently determine when it is valid and when failover should occur, eliminating the need for complex centralized consensus mechanisms while achieving quick recovery and maintaining reliability.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11675706B2Devices and methods for failure detection and recovery for a distributed cache
Publication Date: 2023.06.13 WESTERN DIGITAL TECHNOLOGIES INC
  • US11675706B2 patent drawing
  • US11675706B2 patent drawing
  • US11675706B2 patent drawing

AI summary

A programmable switch includes at least one memory configured to store a cache directory for a distributed cache, and circuitry configured to receive a cache line request from a client device to obtain a cache line. The cache directory is updated based on the received cache line request, and the cache line request is sent to a memory device to obtain the requested cache line. An indication of the cache directory update is sent to a controller for the distributed cache to update a global cache directory. In one aspect, the controller sends at least one additional indication of the update to at least one other programmable switch to update at least one backup cache directory stored at the at least one other programmable switch.