-
Notifications
You must be signed in to change notification settings - Fork 406
Getting Started
This guide will show you how to set up a machine and user environment to build RTBkit and run a demo program.
There are three levels of setup: you need need to have a machine with all the right packages installed, you need to install some packages within a user's home directory, and then you need to build RTBkit.
The first two steps can be skipped by launching an Amazon instance based on ami-340f9f5d: the right packages are installed and the user-level setup has already been done for the rtbkit user.
RTBkit was developed and is tested to run on Ubuntu 12.04.2 LTS (Precise Pangolin).
You should run the following command to ensure you have all of the required dependencies which can be installed via apt:
$ sudo apt-get install git-core g++ libbz2-dev \ liblzma-dev libcrypto++-dev libpqxx3-dev scons libicu-dev \ strace emacs ccache make gdb time automake libtool autoconf \ bash-completion google-perftools libgoogle-perftools-dev \ valgrind libACE-dev gfortran linux-tools uuid-dev liblapack-dev \ libblas-dev libevent-dev flex bison pkg-config python-dev \ python-numpy python-numpy-dev python-matplotlib libcppunit-dev \ python-setuptools ant openjdk-7-jdk libcppunit-dev doxygen \ libfreetype6-dev libpng-dev python-tk tk-dev python-virtualenv \ liblzma-dev sshfs rake ipmitool zookeeperd
Add the following to your ~/.profile and/or whatever your shell requires for the equivalent effect:
# Add local directory for libraries, etc mkdir -p $HOME/local/bin PATH="$HOME/local/bin:$PATH" mkdir -p $HOME/local/lib export LD_LIBRARY_PATH="$HOME/local/lib:$LD_LIBRARY_PATH" export PKG_CONFIG_PATH="$HOME/local/lib/pkgconfig/:$HOME/local/lib/pkg-config/"
You'll need to install a bunch of dependencies which are wrapped up in the Datacratic platform-deps repo:
$ git clone https://github.com/datacratic/platform-deps.git $ cd platform-deps $ git submodule update --init $ make -k all
If you have trouble compiling these dependencies, you may find some help in the platform-deps README. One known issue is that it takes a fair bit of memory to compile these dependencies depending on how much parallelization you use with make
.
Now you're ready to build RTBkit proper.
$ git clone https://github.com/rtbkit/rtbkit-preview.git $ cd rtbkit-preview $ git submodule update --init $ make nodejs_dependencies $ make compile $ make test
The best entry-points into the RTBkit source are in the /examples directory, especially the rtbkit_integration_test, which can be run with make run_rtbkit_integration_test
- Getting Started
- Pull Request Guidelines
- Coding Standards
- Demo Stack
- How to compile static filters test
- RTBkit Binary Package
- Architecture
- Bid Request Lifecycle
- ZooKeeper Nodes
- Load Shedding
- Banker
- Post Auction Loop State Machine
- Post-Auction Loop Sharding
- ZMQ Endpoints