Reverbrain wiki

Site Tools


Server side system requirements

Elliptics server was created as Linux-only solution. Several years ago it supported FreeBSD and Solaris, but practice showed that adding ugly quirks around different systems at the lowest level does not scale. Also, to date there is no low level thread-safe enough dispatching library: libevent and libev both have serious issues when running a pool of dispatching loop threads and want to send messages/events not only to/from network but also between loops.

We believe that only in-kernel dispatching can deal with in-kernel threads (in Linux all threads are basically processes which share memory and file descriptors, and are managed solely by kernel) thus allowing flexible and high performance event processing. Replacing linux-specific epoll mechanism with compatibility layer which may implement low-level calls to FreeBSD's kqueue is not a complex task, but to date there is no strong demand in supporting other than Linux server operating systems.

Client side system requirements

The same applies to web-hosting where clients run. Since client connects to elliptics via the same mechanism as server-server connection, it uses epoll too.

Elliptics has FastCGI proxy implementation, which can be connected from any web-server allowing simple HTTP interface.

There is a Python binding, one can browse examples directory.

elliptics/requirements.txt ยท Last modified: 2012/12/24 22:34 (external edit)