Subspace Hash Index Partitioning for Memory-Constrained Deduplication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data deduplication technologies face inefficiencies in resource usage due to the need to maintain entire hash indexes in memory, which consumes excessive resources and impairs performance, especially as data deduplication moves beyond backup scenarios into primary data storage.
Innovation Solution
The implementation of a subspace-based hash index service that partitions the global hash index into smaller subspaces, allowing only a portion of the index to be loaded into memory, with periodic reconciliation to eliminate duplicates and optimize storage, thereby reducing resource consumption and improving performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the entire hash index is maintained in memory, then index serving performance is improved, but memory resource consumption increases excessively
Solution Approach 1:
The patent divides the global hash index into multiple subspace indexes based on data characteristics (e.g., file type, access pattern, age). Each subspace index can be independently managed and loaded into memory only when needed, rather than loading the entire index at once. This segmentation allows the system to maintain good index serving performance for active subspaces while keeping memory consumption manageable.
Solution Approach 2:
The patent implements dynamic loading and unloading of subspace indexes based on workload demands. The system can adaptively load relevant subspace indexes into memory during high-demand periods and unload them when memory pressure increases or demand decreases. This dynamic approach allows the system to optimize the balance between index serving performance and memory resource consumption in real-time.
2Loss of substance
If data deduplication is implemented across the entire dataset, then deduplication ratio is improved, but computational effort and time increase
Solution Approach 1:
The patent partitions the data dataset into multiple subspaces based on various criteria such as file type, access frequency, and temporal characteristics. Deduplication operations are then performed independently within each subspace rather than across the entire dataset at once. This segmentation reduces the computational complexity from O(n) for the whole dataset to O(n/k) for each of k subspaces, significantly reducing computational time while still achieving effective deduplication ratios within each subspace.
Solution Approach 2:
The patent applies deduplication selectively to specific subspaces based on their characteristics and deduplication potential. Rather than uniformly applying deduplication to all data, the system identifies subspaces with high deduplication potential (e.g., backup data, log files) and applies intensive deduplication there, while using lighter approaches for subspaces with low deduplication potential. This partial action approach achieves significant storage savings in critical areas without the full computational overhead of universal deduplication.
3Device complexity
If traditional B-tree indexing is used for chunk hashes, then data structure simplicity is maintained, but index serving performance deteriorates due to poor locality
Solution Approach 1:
The patent replaces the single global B-tree index with multiple smaller subspace indexes. Each subspace index contains hashes for a specific subset of data with similar characteristics. This segmentation improves locality because related hashes are grouped together in the same subspace index, reducing cache misses and improving access patterns. The simpler data structure of individual subspace indexes also reduces the overall complexity of index management compared to a single large global index.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The subject disclosure is directed towards a data deduplication technology in which a hash index service's index is partitioned into subspace indexes, with less than the entire hash index service's index cached to save memory. The subspace index is accessed to determine whether a data chunk already exists or needs to be indexed and stored. The index may be divided into subspaces based on criteria associated with the data to index, such as file type, data type, time of last usage, and so on. Also described is subspace reconciliation in which duplicate entries in subspaces are detected so as to remove entries and chunks from the deduplication system. Subspace reconciliation may be performed at off-peak time when more system resources are available, and may be interrupted if resources are needed. Subspaces to reconcile may be based on similarity, including via similarity of signatures that each compactly represents the subspace's hashes.