Skip to content
/ sphinx Public

Sphinx is a fast in-memory key-value store, compatible with Memcached.

License

Notifications You must be signed in to change notification settings

penberg/sphinx

Repository files navigation

Sphinx

What is Sphinx?

Sphinx is a fast in-memory key-value store that is compatible with the Memcached wire protocol.

Sphinx partitions data between logical cores, similar to MICA (Lim et al., 2014), so that a specific core manages each key. Sphinx also partitions connection sockets between cores. If a remote core manages a request key, Sphinx uses message passing to execute the request on that core. To manage key-value pairs, Sphinx uses an in-memory, log-structured memory allocator, similar to RAMCloud (Rumble et al., 2014).

Requirements

To build Sphinx, you need:

Build

To build Sphinx, run the following commands:

mkdir build
cd build
cmake ..
make

Usage

To start Sphinx, run the following command in the build directory:

sphinxd/sphinxd

References

Hyeontaek Lim, Dongsu Han, David G. Andersen, and Michael Kaminsky. 2014. MICA: a holistic approach to fast in-memory key-value storage. In Proceedings of the 11th USENIX Conference on Networked Systems Design and Implementation (NSDI'14). USENIX Association, Berkeley, CA, USA, 429-444.

Stephen M. Rumble, Ankita Kejriwal, and John Ousterhout. 2014. Log-structured memory for DRAM-based storage. In Proceedings of the 12th USENIX conference on File and Storage Technologies (FAST'14). USENIX Association, Berkeley, CA, USA, 1-16.

About

Sphinx is a fast in-memory key-value store, compatible with Memcached.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published