Virtual Disk Interval Storage for Multi-Stream Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage systems face performance limitations with multi-stream and multi-user applications due to mechanical latency in electromagnetic disk drives and RAID technologies, leading to inefficient random read/write operations and increased costs with high-end drives like SAS/FC and SSDs, while current caching systems do not differentiate between meta-data and video data, causing performance degradation.

Innovation Solution

The method involves converting random read/write patterns to sequential patterns by using virtual disk intervals and data aggregation policies, where data blocks are mapped from logical to physical addresses to optimize storage and reduce random write/read commands, utilizing a chunk table to allocate physical addresses dynamically and implementing a rotational volume with a cleanup space to improve performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If random read/write operations are performed on electromagnetic disk drives, then data can be written to any location, but performance deteriorates due to mechanical latency, seek time, and rotational latency

Engineering Contradiction:
Improvedata placement flexibilityVSAvoidstorage performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the storage space into intervals and groups data blocks from multiple streams into sequential intervals, transforming random access patterns into sequential access patterns that exploit the high sequential throughput of electromagnetic disk drives while avoiding mechanical latency penalties

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a storage controller with a cache as an intermediary between the host and the disk drives. The controller receives random write requests, buffers them in the cache, and then issues sequential write commands to the disks, effectively decoupling the random access requirements from the sequential access capabilities of the storage medium

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If many high-performance drives (SAS/FC, SSD) are used to improve random read/write performance, then storage performance improves, but cost increases significantly

Engineering Contradiction:
Improverandom read/write performanceVSAvoidcost
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent changes the access pattern parameter from random to sequential, allowing the use of inexpensive SATA drives instead of expensive SAS/FC or SSD drives. By transforming the workload characteristics rather than upgrading the hardware, the system achieves high performance at lower cost

Inventive Principle:
Principle #35Parameter changes

3Reliability

If RAID5 is used for storage, then data redundancy is provided, but performance deteriorates due to additional read operations required for each write

Engineering Contradiction:
Improvedata redundancyVSAvoidwrite performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary actions by pre-calculating and pre-positioning data blocks in sequential intervals before the actual write operation. This allows RAID5 parity calculations to be performed in advance and data to be written sequentially, minimizing the performance impact of RAID5's additional read requirements

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8312217B2Methods and systems for storing data blocks of multi-streams and multi-user applications
Publication Date: 2012.11.13 RASILIENT SYST INC
  • US8312217B2 patent drawing
  • US8312217B2 patent drawing
  • US8312217B2 patent drawing

AI summary

A method for storing data, comprises the steps of: defining one or more intervals for one or more virtual disks, wherein each of the intervals has data; receiving a storage command in a cache, wherein the command having a logical address and a data block; determining a respective interval for the data block corresponding to the logical address of the data block; determining whether the data of the respective interval is to be written to a corresponding storage unit; and receiving a next storage command.