Write Folding Mechanism Using Shared Striping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Content-based storage solutions face challenges in efficiently managing duplicate data and reducing unnecessary write operations, leading to increased wear on storage devices and limited write folding capabilities.

Innovation Solution

Implementing RUSH data stripes across a plurality of storage devices, which allows for increased write folding window size, improved reliability, and metadata awareness, enabling efficient destaging and reduced cell wear through persistent caching and sequential writing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data is stored directly in the final destination without intermediate buffering, then storage capacity efficiency is improved, but write folding capabilities are limited and cell wear increases

Engineering Contradiction:
Improvestorage capacity efficiencyVSAvoidwrite folding capabilities
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent segments the storage path into two distinct sets: a first set of data stripes serving as an intermediate buffer zone and a second set as the final destination. This segmentation allows data to be staged sequentially through the first set before being destaged to the second set, enabling write folding operations to accumulate and consolidate writes before final storage, thereby reducing cell wear while maintaining storage efficiency

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The first set of data stripes performs preliminary buffering and staging of data before final destaging to the second set. This preliminary action allows the system to accumulate multiple writes in the intermediate buffer, perform write folding to consolidate duplicate or near-duplicate data, and only then commit the consolidated data to the final destination, reducing unnecessary writes and extending storage device lifespan

Inventive Principle:
Principle #10Preliminary action

2Reliability

If cache size is increased to extend write folding window, then write folding capabilities are improved, but device complexity and cost increase

Engineering Contradiction:
Improvewrite folding window sizeVSAvoidcache size
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Instead of extending the write folding window in the time dimension by increasing cache size, the patent adds a spatial dimension by introducing a second set of data stripes as an intermediate buffer. This dimensional transformation allows the system to achieve an extended write folding window by distributing data across multiple storage devices in the first set, avoiding the need for large in-memory or in-cache buffering while still enabling write folding operations

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The first set of data stripes acts as an intermediary between the host system and the second set of data stripes. This intermediary layer provides the buffering capability needed for write folding without requiring the host to maintain large cache structures, as the intermediate buffer resides in the storage system itself and can be managed through sequential access patterns that are efficient for storage devices

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If duplicate block writes are eliminated through content-based mapping, then storage capacity efficiency is improved, but metadata management complexity increases

Engineering Contradiction:
Improvestorage capacity efficiencyVSAvoidmetadata management
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent extracts the metadata management complexity from the critical write path by using content-based mapping to identify duplicate blocks and determine their location in the first set of data stripes. Once duplicates are identified through content hashing, the system can directly route writes to the appropriate intermediate buffer location without complex metadata updates during the write operation itself, maintaining storage efficiency while simplifying the write path

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system uses content-based hashing to create a copy of the data block for identification purposes, comparing the hash against existing entries in the first set of data stripes. This copying approach allows efficient duplicate detection without requiring complex metadata structures, as the hash comparison is a simple operation that can be performed quickly to determine whether a block is a duplicate before staging it in the intermediate buffer

Inventive Principle:
Principle #26Copying

4Reliability

If sequential writing is used in intermediate buffer, then cell wear is reduced, but destaging time may increase

Engineering Contradiction:
Improvecell wearVSAvoiddestaging time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent maintains continuity of useful action by allowing sequential writes to the first set of data stripes to proceed without interruption, accumulating data in the intermediate buffer. The destaging operation to the second set is performed as a separate, continuous action that transfers data from the intermediate buffer to the final destination. This separation allows the write path and destage path to operate independently and continuously, minimizing idle time while protecting against cell wear through sequential write patterns

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10852965B2Write folding mechanism using reusable shared striping in a storage system
Publication Date: 2020.12.01 EMC IP HLDG CO LLC
  • US10852965B2 patent drawing
  • US10852965B2 patent drawing
  • US10852965B2 patent drawing

AI summary

A storage system comprising a plurality of storage devices and an associated storage controller. The plurality of storage devices are configured to store data blocks distributed across the plurality of storage devices in a plurality of data stripes. The plurality of data stripes comprise a first set of data stripes and a second set of data stripes. The storage controller is configured to receive data associated with at least one input-output request and to store the received data sequentially in at least one data stripe of the first set of data stripes. The controller is further configured to determine whether or not an amount of data stored in the first set of data stripes is greater than a threshold amount of data and in response to determining that the amount of data stored in the first set of data stripes is greater than the threshold amount of data, to destage the at least one data stripe of the first set of data stripes to the second set of data stripes.