#Pedis
NoSQL data store using the SEASTAR framework, compatible with REDIS.
Redis is very popular data structures server. For more infomation, see here: http://redis.io/ Seastar is an advanced, open-source C++ framework for high-performance server applications on modern hardware. For more infomation, see here: http://www.seastar-project.org/
Now, the redis commands were supported as follow:
- Key: DEL, EXISTS
- String: GET, SET, DECR, INCR, DECRBY, INCRBY, APPEND, STRLEN
- List: LINDEX, LINSERT, LLEN, LPUSH, LPUSHX, LPOP, LRANGE, LREM, LTRIM, LSET, RPOP, RPUSH, RPUSHX
- Hash: HSET, HDEL, HGET, HLEN, HSTRLEN, HMSET, HMGET, HKEYS, HVALS, HEXISTS, HINCRBY
- Other: ECHO, PING
In addition to required packages by Seastar, the following packages are required by Pedis.
Installing required packages:
sudo apt-get install libaio-dev ninja-build ragel libhwloc-dev libnuma-dev libpciaccess-dev libcrypto++-dev libboost-all-dev libxen-dev libxml2-dev xfslibs-dev
Installing GCC 4.9 for gnu++1y. Unlike the Fedora case above, this will not harm the existing installation of GCC 4.8, and will install an additional set of compilers, and additional commands named gcc-4.9, g++-4.9, etc., that need to be used explicitly, while the "gcc", "g++", etc., commands continue to point to the 4.8 versions.
# Install add-apt-repository
sudo apt-get install software-properties-common python-software-properties
# Use it to add Ubuntu's testing compiler repository
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
# Install gcc 4.9 and relatives
sudo apt-get install g++-4.9
# Also set up necessary header file links and stuff (?)
sudo apt-get install gcc-4.9-multilib g++-4.9-multilib
To compile Seastar explicitly using gcc 4.9, use:
git clone https://github.com/fastio/pedis.git
cd pedis
git submodule update --init --recursive
./configure.py --compiler=g++-4.9
ninja
./build/release/pedis --smp 1
The following describe the details of the Pedis benchmark making it reproducible. The result data was generated by memtier_benchmark(https://github.com/RedisLabs/memtier_benchmark).
Latest Results(Sep. 2016)
Pedis's latency was less then 0.5ms for 99% of all requests.
Test bed:
- Server 1: Pedis/Redis Server
- Server 2: memtier_benchmark tool
Software:
- OS RedHat EL7
- Pedis (latest)
- Redis (2.8)
Hardware:
- Memory: 128GB
- SSD: 500GB
- CPU: 24 logical cores
- NIC: 1000Mb