Host Index Update Buffer Recovery via Parallel Thread Reading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In key-value storage systems, data that has not been updated to the index tree may be lost during power outages, leading to difficulties in recovering the index tree and ensuring data integrity.

Innovation Solution

A host with a processor and memory that includes an index tree and an index update buffer, where the processor manages the transfer of versioning keys to the index tree and uses multiple threads to read and recover data from the storage device, allowing for quick recovery of the index update buffer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is stored in key-value pairs with batch updates to the index tree, then write performance is improved, but data recovery becomes difficult when power is suddenly cut off

Engineering Contradiction:
Improvewrite performanceVSAvoiddata recovery capability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by pre-storing versioning keys in the index update buffer before batch updates to the index tree. This allows the system to quickly recover lost data by reading from the buffer rather than performing time-consuming recovery operations, thus resolving the contradiction between improved write performance and maintained data recovery capability

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The index update buffer acts as a cushion that stores versioning keys before they are transferred to the index tree. This beforehand cushioning ensures that even if power is suddenly cut off during batch updates, the versioning keys are preserved in the buffer and can be used for rapid data recovery, maintaining reliability while enabling batch updates for improved productivity

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

2Productivity

If the index tree is updated batch-wise, then system efficiency is improved, but recovery time increases when power outage occurs

Engineering Contradiction:
Improvesystem efficiencyVSAvoidrecovery time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent creates a copy of versioning keys in the index update buffer before batch updates to the index tree. This copying mechanism allows the system to maintain high efficiency during normal operation while enabling rapid recovery by reading from the copied data in the buffer rather than performing lengthy recovery operations, thus resolving the contradiction between system efficiency and recovery time

Inventive Principle:
Principle #26Copying

3Reliability

If versioning keys are transferred to index tree frequently, then data integrity is improved, but write performance decreases

Engineering Contradiction:
Improvedata integrityVSAvoidwrite performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements periodic action by transferring versioning keys from the index update buffer to the index tree in batches rather than after every write operation. This periodic transfer mechanism maintains data integrity by ensuring updates occur at regular intervals while preserving write performance by allowing multiple writes to accumulate in the buffer before triggering a transfer operation

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS11880593B2Host, operating method of host and storage system
Publication Date: 2024.01.23 SAMSUNG ELECTRONICS CO LTD
  • US11880593B2 patent drawing
  • US11880593B2 patent drawing
  • US11880593B2 patent drawing

AI summary

A host includes: an index tree storing an index including information for identifying a versioning key; and an index update buffer storing a write key included in data subject to a write request and the versioning key corresponding to the write key. When a preset update condition is satisfied, the host transfers the versioning key stored in the index update buffer to the index tree, and when the index update buffer requires recovery, the host designates a recovery section of memory of the storage device including data corresponding to the versioning key which has not been updated to the index tree, to be read by a plurality of threads, reads data included in the recovery section from the storage device through the plurality of threads, and inserts the read data into the index update buffer to recover the index update buffer.