Block Pointer Metadata Merge for Reference Count Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing approach to reclaiming indirect blocks (IBs) in data storage systems is resource-intensive and burdensome, involving numerous disk accesses to widely distributed storage locations due to the need to decrement reference counts for all block pointers when an IB is reclaimed.

Innovation Solution

Designating block pointers as either sources or copies, with sources contributing to reference counts and copies not, and maintaining parent-child relationships between block pointer sets (BPSs) to perform a metadata-merge operation that transfers reference-counted attributes from a parent BPS to a child BPS, avoiding the need for reference count updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If reference counts are decremented for all block pointers when reclaiming indirect blocks, then block sharing is properly tracked, but the number of disk accesses and processing overhead increases significantly

Engineering Contradiction:
Improveblock sharing trackingVSAvoidreclaim operation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments block pointers into two distinct categories: source block pointers and copy block pointers. Source pointers are associated with reference counts that trigger reclamation when zero, while copy pointers are used for snapshots and fast copies without affecting reference counts. This segmentation allows the system to track block sharing reliably for sources while avoiding unnecessary processing for copies, thus resolving the contradiction between reliability and productivity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of having all block pointers contribute to reference counts and then decrementing them during reclamation, the patent inverts the approach by having only source pointers contribute to reference counts. Copy pointers, which are numerous and widely distributed, are excluded from reference count management. This inversion eliminates the need to process copy pointers during reclamation operations, significantly improving efficiency while maintaining reliable tracking through the source pointer mechanism.

Inventive Principle:
Principle #13The other way round (Inversion)

2Loss of information

If all block pointers are processed to decrement reference counts during IB reclamation, then accurate block sharing information is maintained, but the operation becomes resource-intensive and time-consuming

Engineering Contradiction:
Improveblock sharing information accuracyVSAvoidreclamation operation time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

By segmenting block pointers into source and copy categories, the patent ensures that only source pointers are processed during reclamation operations. This segmentation maintains accurate block sharing information (since sources are processed) while reducing the time required (since copies are excluded from processing). The reference count mechanism operates only on the subset of source pointers, preventing the need to visit all 1024 locations in an indirect block during reclamation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts copy block pointers from the reference count management system entirely. Copy pointers are removed from the set of pointers that contribute to reference counts, allowing the reclamation operation to proceed without processing them. This extraction maintains information accuracy for shared blocks (through source pointers) while eliminating the time-consuming processing of copy pointers during reclamation.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If reference counts are maintained for all block pointers including copies, then complete block usage tracking is achieved, but the processing overhead and disk access requirements increase

Engineering Contradiction:
Improveblock usage trackingVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments the block pointer population into source pointers (which require reference count tracking) and copy pointers (which do not). This segmentation achieves reliable block usage tracking for sources while avoiding the processing overhead associated with maintaining reference counts for copies. The system remains reliable for tracking actual block usage through sources while energy consumption is reduced by excluding copies from the tracking mechanism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by giving different properties to different types of block pointers. Source pointers have the property of contributing to reference counts and triggering reclamation, while copy pointers have the property of being excluded from reference count management. This local differentiation allows the system to maintain reliable tracking where needed (for sources) while minimizing processing overhead (by excluding copies), resolving the contradiction between reliability and energy use.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10146466B1Merging mapping metadata to promote reference counting efficiency
Publication Date: 2018.12.04 EMC IP HLDG CO LLC
  • US10146466B1 patent drawing
  • US10146466B1 patent drawing
  • US10146466B1 patent drawing

AI summary

A technique for managing metadata in a data storage system designates block pointers as either sources or copies, where sources contribute to reference counts of pointed-to structures but copies do not. The technique maintains parent-child relationships between parent BPSs (block pointer sets) and child BPSs, where each BPS includes an array of block pointers. Each child BPS is created as a copy of a parent BPS and has block pointers initially designated as copies. The technique performs a metadata-merge operation to merge the block pointers of the parent BPS into those of a child BPS by promoting attributes of block pointers in the child BPS from copy to source, avoiding any need to perform reference count updates on structures pointed to by promoted block pointers.