Giter Club home page Giter Club logo

pedis's Introduction

#Pedis

What's 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

Building Pedis on Ubuntu 14.04

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 

Run Pedis

./build/release/pedis --smp 1

Benchmark

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

pedis's People

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.