Sphinx is a fast in-memory key-value store, compatible with Memcached.
APACHE-2.0 License
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).
To build Sphinx, you need:
To build Sphinx, run the following commands:
mkdir build
cd build
cmake ..
make
To start Sphinx, run the following command in the build directory:
sphinxd/sphinxd
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.