###### Abstract
The development of high-performance and scalable indexing structures is essential for storage systems to achieve rapid query processing. Key-value stores extensively employ hashing-based indexing structures in various applications [9,10]. To ensure low overheads and cost-efficient indexing operations, several PM indexes like FAST & FAIR [11], NV-Tree [12], WORT [13], and CCEH [14] have been specifically designed. These indexes not only aim to recover correctly in the case of failures or crashes, but also offer proposals for redesigning indexes [3,4,15,16,17] by adopting different structures specifically tailored for persistent memory. However, many of these proposals primarily rely on emulators to emulate the behavior of persistent memory. With the advent of persistent memory, various techniques based on trees and hashing have been designed to optimize indexing. These techniques primarily utilize B\({}^{+}\) tree-based indexes [11,14,17,18], hash-based indexes. Notably, significant research has been conducted on hash tables to enhance operation speed in in-memory systems' indexing structures. Achieving an efficient lookup time for mapping values to specific keys in hash-based indexes is crucial for ensuring faster access, regardless of data size. In this hashing scheme, the allocation of an adequate bucket size for the hash function plays a significant role in determining the buffer cache for the hash table. However, in applications like key-value stores, the sizes of records cannot be predicted due to dynamic insertion or deletion of items. Therefore, a dynamic hashing scheme that involves dynamic resizing becomes the preferred choice to adjust the table size and accommodate records effectively. During the search for a record in a large storage portion, PM's read/write latency can result in cache misses [18] and PM accesses. Controlling concurrency during these operations requires careful attention, as it introduces additional read/write operations for locking, leading to increased bandwidth consumption. As data insertion increases, the load factor of the hash table rises, necessitating the expansion of the table. This entails rehashing the table and relocating data to newly created buckets. Opting for a dynamic hashing scheme that incorporates dynamic resizing proves to be the optimal approach for appropriately allocating bucket sizes. This is crucial for ensuring the hash function effectively determines the buffer cache of the hashing table, as rehashing is an expensive operation that involves doubling the number of buckets incrementally, determining the new index for values to be mapped to their new locations. The movement of existing records to new bucket locations degrades throughput and temporarily halts access to the indexes during rehashing. Additionally, the read/write latency of PM further contributes to the overall query latency. This challenge is not adequately addressed by the existing research, yet it needs to be addressed. In this research paper, we propose a scalable hashing scheme designed specifically for efficient storage of key-value pairs on persistent memory (PM), addressing the limitations as discussed above. Our approach incorporates mechanisms that optimize the utilization of the hash table by fine-tuning the directory entries and segments, allowing for the accommodation of more records within existing buckets. This is achieved by extensively utilizing the segment before resorting to costly full-table rehashing, and this is a new approach that this work is bringing forward. We introduce an efficient and scalable hashing scheme, referred to as ESH, which possesses the following properties:  
1. It efficiently utilizes the available space in the hash table by redistributing overflow records from a bucket to neighboring buckets within the segment. 2. It reduces or delays the need for full-table rehashing, resulting in improved insertion performance. 3.