Block Pointer Reference Weight Transfer for Write Split Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The process of managing reference weights during write splits in data storage systems is burdensome, requiring numerous disk accesses and reducing throughput, especially when overwriting shared data blocks that are dispersed across diverse storage locations.

Innovation Solution

The technique transfers reference weights from one block pointer to another that shares the same data block, eliminating the need to access metadata blocks and leveraging the locality of related block pointers to coalesce transactions, thereby reducing the number of disk accesses required.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If reference weights are returned to BMD during write splits, then block sharing relationships are properly tracked, but the number of disk accesses increases and throughput decreases

Engineering Contradiction:
Improveblock sharing relationship trackingVSAvoiddata storage system throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the reference weight management from the BMD update process. Instead of returning reference weights to BMD during write splits, the system removes this burden by having block pointers maintain their own reference weights independently, eliminating the need for costly BMD reads and writes while preserving block sharing relationship tracking

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces block pointers as intermediaries that carry reference weight information. Rather than directly updating BMD with reference weight changes, the block pointers themselves serve as the medium for tracking and managing reference weights, reducing the need for BMD accesses

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If BMD is updated for many dispersed data blocks, then reference weight accuracy is maintained, but the number of read and write operations increases

Engineering Contradiction:
Improvereference weight accuracyVSAvoidtime for disk accesses
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary action by having block pointers maintain their reference weights continuously and independently. This preliminary tracking eliminates the need for subsequent BMD updates during write splits, as the reference weight information is already available in the block pointers themselves, ready for immediate use without disk accesses

Inventive Principle:
Principle #10Preliminary action

3Productivity

If reference weights are transferred between block pointers, then the number of disk accesses is reduced, but block pointer complexity increases

Engineering Contradiction:
Improvedata storage system throughputVSAvoidblock pointer structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies universality by making block pointers multi-functional. Block pointers not only store address information but also maintain reference weights and participate in write split operations. This consolidation of multiple functions into the block pointer structure eliminates the need for separate BMD update mechanisms, improving throughput despite the increased versatility required of block pointers

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

Data Source

PatentUS10140307B1Efficiently managing reference weights for write splits
Publication Date: 2018.11.27 EMC IP HLDG CO LLC
  • US10140307B1 patent drawing
  • US10140307B1 patent drawing
  • US10140307B1 patent drawing

AI summary

A technique for performing overwrites on shared data blocks in a file system transfers reference weights of block pointers to other block pointers that share those data blocks. To overwrite a portion of a file stored in a shared data block pointed to by a first block pointer, a file system manager locates a second block pointer in the file system that points to the same data block. The first block pointer has a first reference weight, and the second block pointer has a second reference weight. The file system manager transfers the first reference weight to the second block pointer, e.g., by replacing the second reference weight with the sum of the first reference weight and the second reference weight.