Direct Mapped Hash Table Persistence in Non-Volatile Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods for persisting data structures from volatile to non-volatile memory in information processing systems are inefficient, leading to substantial computational and memory resource wastage, which undermines system performance.
Innovation Solution
The implementation of a direct mapped hash table that splits buckets into chunks and allocates them optimally in non-volatile memory, reducing the number of blocks written and optimizing amortization, thereby improving storage system performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional approaches are used for persisting data structures from volatile to non-volatile memory, then data persistence is achieved, but computational and memory resources are wasted substantially
Solution Approach 1:
The patent divides the hash table into multiple shards, where each shard is a separate data structure that can be independently persisted to non-volatile memory. This segmentation allows the system to persist only the necessary portions of the hash table, reducing computational overhead and memory resource wastage while maintaining data persistence reliability.
Solution Approach 2:
The patent implements selective persistence where different parts of the hash table (shards) are persisted based on their specific requirements and usage patterns. This local quality approach allows the system to optimize resource consumption by persisting only those shards that are currently in use or require persistence, rather than persisting the entire hash table structure.
2Reliability
If conventional approaches are used for persisting data structures from volatile to non-volatile memory, then data persistence is achieved, but memory resources are wasted substantially
Solution Approach 1:
The patent segments the hash table into multiple independent shards, each of which can be persisted to non-volatile memory separately. This segmentation enables the system to allocate memory resources more efficiently by only allocating and persisting the necessary shards, thereby reducing overall memory consumption while maintaining data persistence capability.
Solution Approach 2:
The patent applies local quality by implementing selective persistence at the shard level. Each shard is persisted based on its specific needs and usage patterns, allowing the system to optimize memory resource allocation by only persisting shards that are currently required, rather than persisting the entire hash table structure.
3Quantity of substance
If buckets are split into chunks and allocated optimally in non-volatile memory, then space efficiency is improved, but device complexity increases
Solution Approach 1:
The patent segments each bucket into multiple chunks that can be independently allocated to different shards. This segmentation, combined with the shard-based architecture, allows for flexible and efficient space utilization in non-volatile memory while managing complexity through a systematic division of the hash table structure.
Solution Approach 2:
The patent implements a dynamic allocation mechanism where chunks from buckets can be assigned to different shards based on current system needs and usage patterns. This dynamic approach allows the system to optimize space efficiency by allocating chunks to the most appropriate shards, while the complexity is managed through automated allocation algorithms.
Data Source
AI summary
An apparatus in one embodiment comprises at least one processing device. The processing device is configured to generate a hash entry of a hash table implementing a key-value store that comprises a plurality of buckets associated with corresponding keys where a given bucket comprises a bucket index having two or more entries for storage of values that hash to a key associated with the given bucket. The processing device is also configured to allocate blocks in non-volatile memory, to split the given bucket into chunks each comprising at least one entry of the bucket index, and to persist the hash table to the non-volatile memory utilizing a direct mapping of the chunks of the given bucket to respective designated block offset positions in the allocated blocks. Persisting the hash table comprises storing first and second chunks of the given bucket in first and second allocated blocks.


