82425fd24a22a7d0641eb98d0bf512ca4b6533ab
The solution was proposed by Nadav. When writing a new sstable, write all usual files, write the TOC to a temporary file, and then rename it, which is atomic. Files not belonging to any TOC are invalid, so we ensure that partially written sstables aren't reused. Avi also proposed using fsync on the sstable directory to guarantee that the files reached the disk before sealing the sstable. Subsequently, we should add code to avoid loading sstable which TOC is either temporary or doesn't exist. Temporary TOC files should also be deleted. Signed-off-by: Raphael S. Carvalho <raphaelsc@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
Building urchin on Fedora
Installing required packages:
sudo yum install yaml-cpp-devel lz4-devel zlib-devel snappy-devel jsoncpp-devel
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++
73.5%
Python
25.3%
CMake
0.3%
GAP
0.3%
Shell
0.3%