minxinhao / SepHash

7 stars 2 forks source link

SepHash: A Write-Optimized Hash Index On Disaggregated Memory via Separate Segment Structure

SepHash is a write-optimized hash index designed for emerging disaggregated memory. SepHash uses several techniques to optimize write operations and index expansion on disaggregated memory while maintaining balanced read performance. SepHash proposes a two-level separate segment structure that significantly reduces the bandwidth consumption during resizing. SepHash reduces latency on each write operation using append writes and coroutine. With optimized filter and cache structures, SepHash maintains good read performance.

Feature Highlights

Usage

Building

Prepare and build dependencies

Build

$ mkdir build 
$ cd build
$ cmake ..
$ make ser_cli
$ ../sync.sh out #client-nodes
$ ../ser_cli.sh server
$ python3 ../run.py #client-nodes client #client-per-node #coroutine-per-client
$ ../sync.sh in #client-nodes

WorkLoads and comparison objects

Workloads

Modify the parameters in ser_cli.sh to apply different workloads.

Comparison

Modify the called executable in ser_cli.sh to replace different comparison objects.