Object Store Reference Count Buffering to Reduce Write Amplification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Persisting reference count (RC) updates to objects on persistent storage without optimization leads to write amplification, decreased write performance, and network congestion, as well as inefficient trim top updates, resulting in reduced SSD life and decreased system efficiency.

Innovation Solution

A system that minimizes writing RC updates by collecting them in a bucket buffer, canceling increments against decrements before persisting to persistent storage, and processing RC updates across multiple hierarchical levels to avoid unnecessary writes and optimize write performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If RC updates are persisted immediately to persistent storage, then data consistency is maintained, but write amplification increases and write performance decreases

Engineering Contradiction:
Improvedata consistencyVSAvoidwrite performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary actions by collecting RC updates in a buffer before persisting them to storage. This batching approach allows multiple RC updates to be accumulated and then persisted together in a single operation, reducing the total number of write operations to persistent storage while maintaining data consistency through periodic flushes of the buffer.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system merges multiple RC updates into a single persistent storage operation. By combining multiple increment and decrement operations into one batched write, the system reduces write amplification and improves write performance while still ensuring that the final state is correctly persisted to storage.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If RC updates are persisted immediately to persistent storage, then data consistency is maintained, but network congestion increases

Engineering Contradiction:
Improvedata consistencyVSAvoidnetwork congestion
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The system delays network transmission of RC updates by collecting them in a buffer first. This preliminary buffering allows the system to wait until multiple RC updates are available before transmitting them over the network, reducing the frequency of network operations and minimizing network congestion while maintaining consistency through periodic flushes.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If RC updates are not optimized before persisting, then implementation complexity is low, but SSD life is reduced

Engineering Contradiction:
Improveimplementation complexityVSAvoidSSD life
Core Design Contradiction:
Device complexityVSDuration of action of stationary object

Solution Approach 1:

The system performs preliminary processing of RC updates by collecting and canceling opposite updates in a buffer before persisting to SSD. This approach reduces the total number of write operations to the SSD, thereby extending SSD life. The implementation maintains reasonable complexity by using a simple buffer structure with periodic flush operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes the state of RC updates from individual persistent writes to buffered in-memory operations. By transforming the persistence parameter from immediate disk writes to delayed batch writes, the system reduces SSD wear while maintaining data integrity through periodic flushes of the buffer to persistent storage.

Inventive Principle:
Principle #35Parameter changes

4Loss of energy

If RC updates are canceled in a buffer before persisting, then write amplification is reduced, but device complexity increases

Engineering Contradiction:
Improvewrite amplificationVSAvoidbuffer management complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The system merges opposite RC updates (increments and decrements) within the buffer before persisting to storage. By combining these opposing operations, the system eliminates redundant writes and reduces write amplification. The buffer management complexity is kept manageable through simple data structures and periodic flush operations.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10862736B2Object counts persistence for object stores
Publication Date: 2020.12.08 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10862736B2 patent drawing
  • US10862736B2 patent drawing
  • US10862736B2 patent drawing

AI summary

In an example, a system includes network nodes implementing an object store. The system may determine reference count updates for objects stored on the object store, and delay persisting the reference count updates to a persistent storage. The system may cancel reference count updates that increments and decrement between the determined reference count update and another reference count update received during the delay in persisting the reference count update to the persistent storage to minimize writing to the object record.