DedupSearch: Two-Phase Deduplication Aware Keyword Search
Nadav Elias, Philip Shilane, Sarai Sheinvald, Gala Yadgar
Abstract
Deduplication is widely used to effectively increase the logical capacity of large-scale storage systems, by replacing redundant chunks of data with references to their unique copies. As a result, the logical size of a storage system may be many multiples of the physical data size. The many-to-one relationship between logical references and physical chunks complicates many functionalities supported by traditional storage systems, but, at the same time, presents an opportunity to rethink and optimize others. We focus on the offline task of searching for one or more byte strings (keywords) in a large data repository.
The traditional, naïve, search mechanism traverses the directory tree and reads the data chunks in the order in which they are referenced, fetching them from the underlying storage devices repeatedly if they are referenced multiple times. We propose the DedupSearch algorithm that operates in two phases: a physical phase that first scans the storage sequentially and processes each data chunk only once, recording keyword matches in a temporary result database, and a logical phase that then traverses the system's metadata in its logical order, attributing matches within chunks to the files that contain them. The main challenge is to identify keywords that are split between logically adjacent chunks. To do that, the physical phase records keyword prefixes and suffixes at chunk boundaries, and the logical phase matches these substrings when processing the file's metadata. We limit the memory usage of the result database by offloading records of tiny (one-character) partial matches to the SSD/HDD, and ensure that it is rarely accessed.
We compare DedupSearch to the naïve algorithm on datasets of different data types (text, code, and binaries), and show that it can reduce the overall search time by orders of magnitude.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 6e63b67b-0adb-452b-93f1-39394c274e2dCited by top-tier papers1
Ask how each one uses itBuilds on3
- Quiver: An Informed Storage Cache for Deep LearningAbhishek Vijaya Kumar, Muthian SivathanuFAST 2020 · 91 citations
- GoSeed: Generating an Optimal Seeding Plan for Deduplicated StorageAviv Nachman, Gala Yadgar, Sarai SheinvaldFAST 2020 · 19 citations
- CLP: Efficient and Scalable Search on Compressed Text LogsKirk Rodrigues, Yu Luo, Ding YuanOSDI 2021
Related papers
- Don't Maintain Twice, It's Alright: Merged Metadata Management in Deduplication File System with GogetaFSYanqi Pan, Wen Xia, Erci Xu, Hao Huang et al.FAST 2025 · 6 citations
- TiDedup: A New Distributed Deduplication Architecture for CephMyoungwon Oh, Sungmin Lee, Samuel Just, Youngjin Yu et al.USENIX ATC 2023 · 23 citations
- Garbage Collection Does Not Only Collect Garbage: Piggybacking-Style Defragmentation for Deduplicated Backup StorageDingbang Liu, Xiangyu Zou, Tao Lu, Philip Shilane et al.EuroSys 2025 · 1 citation
- NDSEARCH: Accelerating Graph-Traversal-Based Approximate Nearest Neighbor Search through Near Data ProcessingYitu Wang, Shiyu Li, Qilin Zheng, Linghao Song et al.ISCA 2024 · 26 citations
- FinerDedup: Sifting Fingerprints for Efficient Data Deduplication on Mobile DevicesXianzhang Chen, Xingjie Zhou, Wei Li, Xi Yu et al.DAC 2024 · 2 citations
