Segmented De-duplication Index for Real-Time Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data storage systems with large amounts of data for de-duplication face memory limitations, making it impossible to keep the entire index in memory, leading to slow real-time de-duplication processes.
Innovation Solution
Segmenting the de-duplication index into smaller segments, with only a subset loaded into memory at a time, and using predictive filters like Bloom filters to quickly determine if a block is indexed, allowing for real-time reference and efficient de-duplication.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the entire de-duplication index is kept in memory, then real-time de-duplication can be achieved, but memory limitations prevent this for large data sets
Solution Approach 1:
The de-duplication index is divided into multiple segments that can be stored on disk rather than requiring the entire index to be in memory. Only the currently needed segment is loaded into memory for processing, enabling real-time de-duplication even with limited memory resources.
2Quantity of substance
If the index is stored on disk instead of in memory, then memory usage is reduced, but de-duplication becomes too slow for real-time processing
Solution Approach 1:
The needed index segment is pre-loaded into memory before the de-duplication operation begins. This preliminary action ensures that when de-duplication processing is needed, the index data is already in fast memory, avoiding slow disk access during the actual processing.
Solution Approach 2:
The system dynamically manages memory by loading and unloading index segments as needed. The memory buffer is reused to hold different segments at different times, optimizing the balance between memory usage and processing speed.
3Productivity
If predictive filters are used to predict block indexing, then real-time de-duplication is enabled, but memory is required to store the filters
Solution Approach 1:
The predictive filter functionality is extracted from the main index structure and implemented as a separate, more compact component. This allows the filter to be stored in memory with minimal overhead while the main index remains on disk, enabling real-time processing without requiring large memory allocations.
Data Source
AI summary
Techniques have been provided for storing data in a de-duplicated manner on a data storage system in a manner that allows for real-time reference to an index that is too large to fit within memory. This may be accomplished by segmenting the index into smaller segments, stored on disk. Only a subset of the segments may be loaded into memory at a given time. A predictive filter is stored in memory for each segment, allowing a de-duplication driver to quickly predict whether any given new block is likely to be indexed by each segment. Since identical blocks are often stored in long identical sequences (e.g., upon copying a disk image to a disk for a virtual machine), once a segment stored on disk is referenced many times in a short period, it is loaded into memory to allow the remainder of the long sequence to be de-duplicated.

