SSD De-duplication Using Contextual Hints and Garbage Collection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data de-duplication methods in solid state devices lack scalability and efficiency, particularly in handling randomized data and failing to utilize contextual information from higher application layers, leading to suboptimal storage utilization and increased bandwidth requirements.
Innovation Solution
Implementing a de-duplication system in solid state devices that uses contextual hints from higher application layers to determine whether data should be de-duplicated, separating data into sub-objects with headers containing metadata, and performing de-duplication during garbage collection to optimize storage and reduce unnecessary rewrites.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data de-duplication is performed on all data blocks without discrimination, then storage efficiency is improved, but processing overhead and time consumption increase significantly
Solution Approach 1:
The patent applies preliminary action by performing de-duplication during garbage collection operations before data blocks are fully written or before they would normally be processed. This allows the system to identify and eliminate redundant data blocks in advance, reducing the need for subsequent processing and improving overall storage efficiency without adding significant processing overhead during normal operations.
Solution Approach 2:
The system performs self-service by utilizing existing garbage collection processes to simultaneously identify and de-duplicate redundant data blocks. Instead of requiring separate dedicated de-duplication processing, the system leverages its own maintenance operations to achieve de-duplication, thereby reducing processing time and overhead while improving storage efficiency.
2Measurement precision
If contextual information from application layers is utilized for de-duplication decisions, then de-duplication accuracy is improved, but system complexity increases
Solution Approach 1:
The patent introduces an intermediary layer that receives contextual information from application layers and translates it into de-duplication decisions. This intermediary mechanism allows the system to leverage high-level application context for more accurate de-duplication without requiring direct integration with each application, thereby improving accuracy while managing system complexity through abstraction.
Solution Approach 2:
The system segments the de-duplication process into distinct components: one that handles contextual information from application layers and another that executes de-duplication decisions. This segmentation allows each component to be optimized independently, improving overall accuracy while keeping individual components manageable in terms of complexity.
3Productivity
If de-duplication is performed during garbage collection, then processing efficiency is improved, but storage space availability may be affected
Solution Approach 1:
The patent applies discarding and recovering by identifying redundant data blocks during garbage collection and replacing them with references to unique data blocks. This process discards duplicate data while recovering storage space, allowing the system to improve processing efficiency by eliminating redundant writes and simultaneously maintaining or increasing storage space availability through reference-based storage.
Solution Approach 2:
Instead of physically copying redundant data blocks, the system creates reference copies that point to the unique data block. This approach improves processing efficiency by avoiding redundant data movement while maintaining storage space availability, as the reference structure consumes minimal space compared to full data copies.
Data Source
AI summary
In one aspect, the present disclosure relates to a method of de-duplicating data in a solid state storage device. The method can include receiving a block of data to be written to a solid state storage device, wherein the block of data comprises header portion and a payload, wherein the header portion comprises context information; and determining whether the payload should be de-duplicated prior to storage, based on the context information stored within the header portion; if the payload is determined to be de-duplicated, de-duplicating the payload; and storing the de-duplicated payload to the solid state storage device.


