SSD Data Journaling with Bloom Filters for Low DRAM
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Solid state drives (SSDs) with low dynamic random access memory (DRAM) or static random access memory (SRAM) face performance degradation due to frequent metadata writes and flash block wear, as existing journaling schemes require numerous flash read operations and frequent journal commits, leading to increased wear and reduced throughput.
Innovation Solution
A data journaling method using a hierarchical scheme with Bloom filters to efficiently locate updated data mappings, reducing the need for flash read operations and aggregating journal data to minimize commit overhead, thereby optimizing SSD write/read throughput and reducing wear on SSDs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If hierarchical journaling is used to operate large SSDs with low DRAM/SRAM, then the SSD can function with limited volatile memory, but read performance degrades due to frequent flash read operations
Solution Approach 1:
The patent extracts the metadata search function from the journal structure and implements it using a Bloom filter data structure. This allows the system to quickly determine whether metadata entries exist in the journal without performing full flash read operations, thereby extracting the essential information retrieval capability while eliminating the performance-degrading sequential search through journal entries.
Solution Approach 2:
The Bloom filter serves as an intermediary between the read request and the journal data. Instead of directly searching the journal for each read request, the system first queries the Bloom filter to determine if the metadata entry exists in the journal. This intermediary structure reduces the number of actual flash read operations needed, improving read throughput while maintaining functionality with limited DRAM/SRAM.
2Productivity
If metadata updates are recorded in a volatile journal instead of committing to NAND, then write performance is improved, but the journal must be frequently written to flash causing increased block wear
Solution Approach 1:
The patent applies preliminary action by pre-calculating and storing Bloom filter data structures in DRAM/SRAM before journal commits occur. This allows the system to quickly answer existence queries about metadata entries without needing to read the actual journal contents from flash, thereby reducing the frequency and impact of flash write operations and minimizing block wear.
Solution Approach 2:
The system creates a simplified copy of the journal's essential information in the form of a Bloom filter data structure. This copy resides in fast volatile memory and provides the same existence-checking functionality without requiring physical access to the journal data on flash, thereby reducing wear on flash blocks while maintaining write performance benefits.
3Reliability
If the volatile journal is frequently written to the SLC journal, then the journal commit process maintains data consistency, but SSD performance degrades due to the overhead of frequent commits
Solution Approach 1:
The system performs preliminary actions by pre-computing and maintaining Bloom filter data structures that reflect the current state of the journal before commits occur. This allows the system to quickly determine metadata existence without requiring immediate journal commits, thereby maintaining data consistency through the Bloom filter while reducing the frequency and performance impact of actual flash write operations.
Solution Approach 2:
The Bloom filter acts as an intermediary that maintains data consistency information without requiring frequent journal commits. By using the Bloom filter to answer existence queries, the system preserves the reliability benefits of journaling while eliminating the performance penalty of frequent commit operations, as the Bloom filter can be updated and queried in volatile memory without flash access.
Data Source
AI summary
A data journaling method in a solid state storage device, the method including: receiving a read request; determining whether updated data mapping for the read request is located in at least one of a volatile journal and a nonvolatile journal using a Bloom filter; searching the volatile journal if the updated data mapping for the request is located in the Bloom filter, and then, searching the nonvolatile journal if the updated data mapping for the request is not found in the volatile journal; and stopping the search when the updated data mapping is found.


