Programmable Switch Cache Directory Replication
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Reliability
If consensus between cache directory replicas is enabled quickly for fault tolerance, then reliability is improved, but device complexity increases
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.
Data Source
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.


