Nadav Har'El 5a02eeaba9 v2: repair: track ongoing repairs
[in v2: 1. Fixed a few small bugs.
        2. Added rudementary support parallel/sequential repair.
	3. Verified that code works correctly with Asias's fix to streaming]

This patch adds the capability to track repair operations which we have
started, and check whether they are still running or completed (successfully
or unsuccessfully).

As before one starts a repair with the REST api:

   curl -X GET --header "Content-Type: application/json" --header "Accept: application/json" "http://127.0.0.1:10000/storage_service/repair_async/try1"

where "try1" is the name of the keyspace. This returns a repair id -
a small integer starting with 0. This patch adds support for similar
request to *query* the status of a previously started repair, by adding
the "id=..." option to the query, which enquires about the status of the
repair with this id: For example.,

    curl -i -X GET --header "Content-Type: application/json" --header "Accept: application/json" "http://127.0.0.1:10000/storage_service/repair_async/try1?id=0"

gets the current status of this repair 0. This status can be RUNNING,
SUCCESSFUL or FAILED, or a HTTP 400 "unknown repair id ..." in case an
invalid id is passed (not the id of any real repair that was previously
started).

This patch also adds two alternative code-paths in the main repair flow
do_repair_start(): One where each range is repaired one after another,
and one where all the ranges are repaired in parallel. At the moment, the
enabled code is the parallel version, just as before this patch. But the
will also be useful for implementing the "parallel" vs "sequential" repair
options of Cassandra.

Note that if you try to use repair, you are likely to run into a bug in
the streaming code which results in Scylla either crashing or a repair
hanging (never realising it finished). Asias already has a fix this this bug,
and will hopefully publish it soon, but it is unrelated to the repair code
so I think this patch can independently be committed.

Signed-off-by: Nadav Har'El <nyh@cloudius-systems.com>
2015-08-16 14:23:02 +03:00
2015-08-16 14:23:02 +03:00
2015-07-30 11:32:09 +03:00
2015-01-05 14:13:31 +08:00
2015-07-19 20:48:36 +03:00
2015-08-16 14:23:02 +03:00
2015-08-14 11:39:26 +03:00
2014-10-23 10:46:55 +03:00
2015-07-27 10:14:02 +03:00
2015-08-07 09:30:53 -05:00
2015-03-05 18:11:37 +02:00
2015-08-11 17:25:46 +03:00
2015-08-11 17:25:46 +03:00
2015-05-21 15:17:34 +03:00
2015-06-24 13:09:51 +03:00
2015-07-31 16:27:55 +08:00
2015-08-06 14:05:16 +02:00
2015-08-06 14:05:16 +02:00
2015-07-22 13:13:38 +02:00
2015-08-05 17:09:08 +02:00
2015-08-02 16:07:42 +03:00
2015-07-30 10:56:01 +02:00
2015-08-09 00:05:33 +03:00
2015-07-24 22:55:08 -04:00
2015-07-31 12:58:16 +03:00
2015-04-24 18:01:01 +02:00

#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 thrift-devel antlr3-tool 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
No description provided
Readme 307 MiB
Languages
C++ 73.5%
Python 25.3%
CMake 0.3%
GAP 0.3%
Shell 0.3%