Cache Coherence via XOR Differential Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data storage systems face challenges in efficiently managing updates across multiple nodes in a distributed cache environment, particularly in determining when to send updates or invalidate cache pages, which can lead to performance issues and cache misses.

Innovation Solution

A method is introduced where updates are determined by performing a bitwise logical exclusive XOR operation on the current and updated content, with the result sent to other nodes if the update size is below a threshold or if the affected cache is performance critical, or an invalidate request is sent otherwise, to maintain cache coherence and reduce cache misses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If updates are sent to all nodes in the distributed cache, then cache coherence is maintained, but network bandwidth is consumed and system performance degrades

Engineering Contradiction:
Improvecache coherenceVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent changes the parameter of update propagation by using XOR difference encoding to transform full page updates into compact differential representations. This parameter change reduces the amount of data transmitted across the network while maintaining cache coherence, thereby resolving the contradiction between reliability and productivity.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent extracts only the essential update information by computing XOR differences between old and new page contents. Instead of transmitting entire cache pages, only the differential changes are extracted and transmitted, reducing network overhead while preserving cache coherence.

Inventive Principle:
Principle #2Taking out (Extraction)

2Loss of energy

If update threshold is set low to reduce network traffic, then network bandwidth is saved, but cache coherence may be compromised

Engineering Contradiction:
Improvenetwork bandwidthVSAvoidcache coherence
Core Design Contradiction:
Loss of energyVSReliability

Solution Approach 1:

The patent implements a feedback mechanism where the invalidate threshold dynamically adjusts based on observed cache behavior and update patterns. When cache miss rates increase or coherence violations are detected, the threshold automatically lowers to ensure coherence. This feedback loop resolves the contradiction by adapting the threshold to actual system conditions rather than using a fixed value.

Inventive Principle:
Principle #23Feedback

3Quantity of substance

If invalidate requests are sent instead of updates, then network traffic is reduced, but cache hit rate decreases due to frequent invalidations

Engineering Contradiction:
Improvenetwork traffic volumeVSAvoidcache hit rate
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent changes the parameter of data representation by using XOR difference encoding to transform invalidate requests into compact update representations. Instead of sending invalidation commands that force cache misses, the system transmits encoded differential updates that can be applied directly to existing cache entries, maintaining hit rates while reducing network traffic volume.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11366750B2Caching techniques
Publication Date: 2022.06.21 EMC IP HLDG CO LLC
  • US11366750B2 patent drawing
  • US11366750B2 patent drawing
  • US11366750B2 patent drawing

AI summary

Techniques for caching may include: determining an update to a first data page of a first cache on a first node, wherein a second node includes a second cache and wherein the second cache includes a copy of the first data page; determining, in accordance with one or more criteria, whether to send the update from the first node to the second node; responsive to determining, in accordance with the one or more criteria, to send the update, sending the update from the first node to the second node; and responsive to determining not to send the update, sending an invalidate request from the first node to the second node, wherein the invalidate request instructs the second node to invalidate the copy of the first data page stored in the second cache of the second node.