Distributed Cache Coherency Protocol for SAN Virtual Machine Migration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In Storage Area Networks (SANs), cache coherency issues arise when multiple physical machines access the same shared storage, particularly when virtual machines are moved between machines, as the cache on the original machine needs to be invalidated, but the physical machine's cache cannot identify which blocks are associated with a virtual machine's file, leading to complications.

Innovation Solution

A distributed cache coherency protocol is implemented, where exclusive caching rights are delegated to computing machines for specific ranges of memory blocks in the block storage device, allowing only authorized machines to cache data, and the block delegation logic controls access and invalidation of cache data to maintain coherency across machines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If caching is enabled on individual machines in a SAN environment, then I/O operations speed is improved, but cache coherency cannot be maintained among caches on various machines

Engineering Contradiction:
ImproveI/O operations speedVSAvoidcache coherency
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The storage address space is segmented into delegated ranges, with exclusive caching rights assigned to specific computing machines for specific ranges. This segmentation allows different machines to cache different portions of storage without coherency conflicts, enabling local caching while maintaining overall system consistency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A block delegation logic acts as an intermediary between storage devices and computing machines, managing caching rights and coordinating cache operations across multiple machines. This intermediary maintains a mapping between storage blocks and caching machines, ensuring coherency when virtual machines are moved or when caching decisions need to be coordinated.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If caching is disabled on individual machines to maintain coherency, then cache coherency is maintained, but I/O operations speed deteriorates

Engineering Contradiction:
Improvecache coherencyVSAvoidI/O operations speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

Different caching policies are applied to different storage ranges based on local needs. Each computing machine has exclusive caching rights for its delegated ranges, allowing aggressive local caching without affecting other machines. This local quality approach enables speed improvement while maintaining coherency through selective caching.

Inventive Principle:
Principle #3Local quality

3Reliability

If cache invalidation is performed when virtual machines are moved, then cache coherency is maintained, but the complexity of tracking which blocks are associated with virtual machines increases

Engineering Contradiction:
Improvecache coherencyVSAvoidcache management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Caching rights are pre-delegated to computing machines for specific storage ranges before virtual machine migration occurs. The block delegation logic maintains a mapping between storage blocks and caching machines in advance, so when migration happens, the system can quickly determine which cache to invalidate without complex tracking during the migration process itself.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9043560B2Distributed cache coherency protocol
Publication Date: 2015.05.26 KIOXIA CORP
  • US9043560B2 patent drawing
  • US9043560B2 patent drawing
  • US9043560B2 patent drawing

AI summary

Systems, methods, and other embodiments associated with a distributed cache coherency protocol are described. According to one embodiment, a method includes receiving a request from a requester for access to one or more memory blocks in a block storage device that is shared by at least two physical computing machines and determining if a caching right to any of the one or more memory blocks has been granted to a different requester. If the caching right has not been granted to the different requester, access is granted to the one or more memory blocks to the requester.