Shared Reference Counters for Virtual Storage Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In systems with virtual machines, managing reference counters across multiple nodes to prevent premature deallocation of physical storage device blocks is challenging, especially when multiple virtual storage devices refer to the same data, leading to inefficiencies and potential data loss.

Innovation Solution

Implementing a system where reference counters are stored on a real storage device rather than shared memory, allowing multiple virtual storage devices to transparently share and update these counters, eliminating the need for nodes to communicate each action related to shared real storage devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If reference counters are stored in shared memory (RAM) for each node, then each node can independently manage its virtual storage devices, but multiple nodes cannot safely share the same physical storage blocks without complex communication protocols

Engineering Contradiction:
ImproveIndependent management of reference counters by each nodeVSAvoidSafe sharing of physical storage blocks across nodes
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent introduces a distributed file system layer as an intermediary between virtual storage devices and physical storage blocks. This intermediary implements a reference counting mechanism that tracks block usage across multiple nodes, allowing safe sharing without requiring direct node-to-node communication protocols. The intermediary manages the complexity of cross-node reference tracking while presenting simple interfaces to individual nodes.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If a block of memory in physical storage is restricted to be mapped to only a single virtual storage device, then reference counting becomes simpler, but system efficiency decreases due to redundant data copies

Engineering Contradiction:
ImproveSimplicity of reference counting mechanismVSAvoidSystem efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent enables physical storage blocks to serve multiple virtual storage devices simultaneously through the distributed file system layer. The reference counting mechanism is designed to handle multiple references to the same block, allowing a single physical block to be efficiently shared across multiple virtual storage devices without creating redundant copies, thereby improving system productivity while maintaining manageable complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Adaptability or versatility

If multiple nodes implement separate reference counting for the same physical blocks, then each node can manage its own virtual storage devices independently, but premature deallocation occurs when nodes cannot coordinate their reference updates

Engineering Contradiction:
ImproveIndependent virtual storage device managementVSAvoidPrevention of premature deallocation
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent implements a feedback mechanism where the distributed file system layer continuously tracks reference counts across all nodes accessing the same physical blocks. When a block is allocated or deallocated on any node, the reference count is updated and this information is fed back to the central management layer, which then makes informed decisions about block deallocation. This prevents premature deallocation while allowing nodes to independently manage their virtual storage devices.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9436386B2Shared reference counters among a plurality of virtual storage devices
Publication Date: 2016.09.06 SCALE COMPUTING INC
  • US9436386B2 patent drawing
  • US9436386B2 patent drawing
  • US9436386B2 patent drawing

AI summary

A system, method, and computer program product are provided for implementing shared reference counters among a plurality of virtual storage devices. The method includes the steps of allocating a first portion of a real storage device to store data, wherein the first portion is divided into a plurality of blocks of memory and allocating a second portion of the real storage device to store a plurality of reference counters that correspond to the plurality of blocks of memory. The reference counters may be updated by two or more virtual storage devices hosted in one or more nodes to manage the allocation of the blocks of memory in the real storage device.