mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-29 20:57:00 +00:00
d9b7f4bde3d1252fa2c1338285cbd5aa69668ece
In my previous attempt, I have separated the state processor for the main loop, leaving that to be filled by a derived class. That felt a lot more natural, because then we don't have to replicate the loop logic in the derived classes. But well, oh, well, life is hard. Specially on fast paths. Doing that makes us insert an extra call in this loop, and that is noticeable: we would be 1.5 % slower, and that is not even counting the cost of making the state processing a virtual function later on. I could just argue that this is acceptable due to decoupling gains, but why I would argue that, if I can just rewrite it in a way that no performance is lost? And then I did. The disadvantage of this, is that the derived class will now have to re-code the loop, but no performance is lost. Another advantage of this, is that the derived class will now be able to call into process_buffer directly, without using virtual functions in this path for any of them. Signed-off-by: Glauber Costa <glommer@cloudius-systems.com>
#Urchin
##Building Urchin
In addition to required packages by Seastar, the following packages are required by Urchin.
Submodules
Urchin uses submodules, so make sure you pull the submodules first by doing:
git submodule init
git submodule update --recursive
Building urchin on Fedora
Installing required packages:
sudo yum install yaml-cpp-devel lz4-devel zlib-devel snappy-devel jsoncpp-devel thrift-devel antlr3-tool antlr3-C++-devel libasan libubsan
Building urchin on Ubuntu 14.04
Installing required packages:
sudo apt-get install libyaml-cpp-dev liblz4-dev zlib1g-dev libsnappy-dev libjsoncpp-dev
Description
Languages
C++
72.6%
Python
26.1%
CMake
0.4%
GAP
0.3%
Shell
0.3%