High performance server-side application framework
C++ Python Other
Latest commit 89a2306 Jan 14, 2017 @tgrabiec tgrabiec committed with avikivity core: Avoid memory leak when submission to syscall_work_queue fails
Message-Id: <1484330403-32200-1-git-send-email-tgrabiec@scylladb.com>
Permalink
Failed to load latest commit information.
apps core: add fsqual.cc/.hh to core Jan 12, 2017
core core: Avoid memory leak when submission to syscall_work_queue fails Jan 15, 2017
debug debug: add latency detector script Nov 27, 2016
doc tutorial: fix semaphore example, and text Dec 5, 2016
docker/dev Dockerfile update Mar 15, 2016
dpdk @ af56afc Update DPDK to 16.11 Jan 1, 2017
fmt @ 0a20325 print: switch to fmtlib Jul 18, 2016
http http: Move metrics registration to the metrics layer Dec 21, 2016
json json::formatter: Add formatters for maps + rudimentary test Oct 25, 2016
kvm VM image build script to running SeaStar on Linux guest May 27, 2015
licenses scripts: Scripts allowing to run a command in DPDK environment. Sep 20, 2015
net dpdk: Fix compile error with rte_pci.h Jan 12, 2017
proto Import the metrics definition from prometheus Jul 21, 2016
rpc Revert "rpc: Avoid using zero-copy interface of output_stream" Dec 29, 2016
scripts scripts/posix_net_conf.sh: detect IRQs of virtio-net and xen_netfront… Oct 26, 2016
tests fstream_test: fix spurious failures due to BOOST_REQUIRE_EQUAL thread… Jan 9, 2017
util core: memory: Use saved_backtrace in allocation_site Jan 13, 2017
.gitattributes Add .gitattributes to improve 'git diff' output Nov 3, 2015
.gitignore Ignore cscope files Oct 23, 2014
.gitmodules print: switch to fmtlib Jul 18, 2016
.gitorderfile gitorderfile: make changes into *.py files appear first May 12, 2015
Doxyfile do not generate documentation for the fmt submodule Sep 18, 2016
LICENSE Add LICENSE, NOTICE, and copyright headers to all source files. Feb 19, 2015
NOTICE NOTICE: mention dpdk Jun 24, 2015
README-DPDK.md dpdk: get rid of backward compatibility code Jul 28, 2015
README-OSv.md README: Rename README-OSv to README-OSv.md May 5, 2015
README.md doc: use install-dependencies.sh on docs Aug 3, 2016
configure.py core: add fsqual.cc/.hh to core Jan 12, 2017
install-dependencies.sh install-dependencies.sh: add systemtap-sdt-dev to Ubuntu/Debian depen… Jan 12, 2017
test.py core: Introduce expiring_fifo extracted from semaphore Nov 22, 2016

README.md

Seastar

Introduction

SeaStar is an event-driven framework allowing you to write non-blocking, asynchronous code in a relatively straightforward manner (once understood). It is based on futures.

Building Seastar

See instructions for Fedora, CentOS and Ubuntu.

There are also instructions for building on any host that supports Docker.

Use of the DPDK is optional.

Getting started

There is a mini tutorial and a more comprehensive one.

The Native TCP/IP Stack

Seastar comes with its own userspace TCP/IP stack for better performance.

Recommended hardware configuration for SeaStar

  • CPUs - As much as you need. SeaStar is highly friendly for multi-core and NUMA
  • NICs - As fast as possible, we recommend 10G or 40G cards. It's possible to use 1G to but you may be limited by their capacity. In addition, the more hardware queue per cpu the better for SeaStar. Otherwise we have to emulate that in software.
  • Disks - Fast SSDs with high number of IOPS.
  • Client machines - Usually a single client machine can't load our servers. Both memaslap (memcached) and WRK (httpd) cannot over load their matching server counter parts. We recommend running the client on different machine than the servers and use several of them.