Data Virtualization Layer for Read-Only Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current techniques for accessing non-modifiable data, such as backups or snapshot volumes, require significant storage space and time for copying and maintaining writable versions, leading to delays in restoration and multiple copy operations.

Innovation Solution

Data virtualization techniques intercept I/O requests, storing changes for write requests and providing modified or unmodified data as needed for read requests, allowing processes to access and modify virtualized data without altering the original source data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If data is copied to a new volume or partition to enable write access, then write capability is improved, but storage space requirements increase significantly

Engineering Contradiction:
Improvewrite capabilityVSAvoidstorage space
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

A virtualization layer is introduced as an intermediary between the read-only source data and the processes requiring write access. This layer intercepts I/O requests and manages a cache of modified data, allowing write operations without duplicating the entire data set. The virtualization layer acts as a mediator that enables write capability while maintaining the original read-only source, thus resolving the contradiction between write accessibility and storage space consumption.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If data is copied to enable write access, then write capability is improved, but time required for restoration and access increases

Engineering Contradiction:
Improvewrite capabilityVSAvoidrestoration time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The virtualization layer performs preliminary actions by pre-loading data into a cache and maintaining a mapping between virtual addresses and physical locations. When write requests arrive, the system can quickly locate and modify cached data without needing to search through or copy large portions of the source data. This preliminary preparation of the data structure enables fast write operations and restoration, resolving the time loss contradiction.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If multiple copies of data are maintained for different processes, then write access for multiple processes is improved, but storage space and complexity increase

Engineering Contradiction:
Improvemulti-process accessVSAvoidstorage space
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The virtualization layer provides universal access to multiple processes through a single unified interface. Instead of creating separate copies for each process, the virtualization layer manages a shared cache that serves multiple processes simultaneously. Each process can request write access through the same virtualization layer, which handles the caching and modification management centrally. This multi-functional approach enables multi-process write access without proportionally increasing storage requirements, resolving the contradiction between adaptability and quantity of substance.

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

Data Source

PatentUS7987335B1Techniques for virtualizing data
Publication Date: 2011.07.26 COHESITY INC
  • US7987335B1 patent drawing
  • US7987335B1 patent drawing
  • US7987335B1 patent drawing

AI summary

Techniques for virtualizing data are disclosed. In one particular exemplary embodiment, the techniques may be realized as a method for virtualizing data comprising identifying source data to be virtualized, intercepting an input/output (i/o) request to the source data, determining whether the input/output request is a read request or a write request, in the event the input/output request is a write request, storing one or more changes contained in the write request, and in the event the input/output request is a read request, determining whether a portion of data requested has been modified and responding to the read request. Responding to the read request may comprise providing stored data in the event a portion of the data requested has been modified, and utilizing source data in the event the data requested is unmodified.