Skip to content
/ sphinx Public

Sphinx is a state-of-the-art succinct and dynamic perfect hash table engineered for high performance on modern x86 CPUs.

License

Notifications You must be signed in to change notification settings

sfmqrb/sphinx

Repository files navigation

Sphinx: A Succinct Perfect Hash Index for x86

Sphinx is a state-of-the-art succinct perfect hash table engineered for high performance on modern x86 CPUs. Its innovative encoding leverages rank and select primitives alongside auxiliary metadata to enable near-instantaneous hash table slot decoding. Moreover, Sphinx is designed to be expandable and easily parallelizable.

Quickstart

To get started, simply clone the repository and navigate into the project directory:

git clone [repo-url]
cd sphinx

Reproducablity

Benchmark outputs will be generated in the build/benchmark/ directory. For complete instructions on reproducing the results described in the paper, see reproducibility.md.

Compiling and Testing

After cloning the repository along with its submodules, follow these steps to build the project using CMake:

  1. Create a build directory and navigate into it:
    mkdir build && cd build
  2. Build the project with optimizations with:
    cmake --build . --parallel 10

To run tests, make sure that ENABLE_MT is defined in your configuration. Then, execute:

ctest .

License

This project is licensed under the BSD 2-Clause License. See the LICENSE file for full details.

About

Sphinx is a state-of-the-art succinct and dynamic perfect hash table engineered for high performance on modern x86 CPUs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published