Avi Kivity 23d3ca56a1 Merge "optional integrity checker of sstable component writes" from Raphael
"optional interposer that will check integrity of writes to sstable components.
The option name is enable_sstable_data_integrity_check, it's disabled by default
and can be enabled via config file.
It will provide enough details that will help to find the root of the issue.

if disk failed for example, we would've something like the following reported:
ERROR 2017-08-17 09:18:11,577 [shard 0] sstable - integrity check failed for ./data/data/system_schema/aggregates-924c55872e3a345bb10c12f37c1ba895/system_schema-aggregates-ka-111-Scylla.db, stage: read after write verification, write: 4096 bytes to offset 0, reason: data read from underlying storage isn't the same as written, mismatch at byte 0:
 data written sample:   10000001000000010000001a00000001
 date read sample:      00000000000000000000000000000000"

* 'integrity_check_interposer_v3' of github.com:raphaelsc/scylla:
  sstables: optionally check integrity of sstable component writes
  sstables: remove unneeded new_sstable_component_file variant
  db/config: add sstable_data_integrity_check option
  sstables: introduce file interposer for integrity check
2017-08-31 11:08:12 +03:00
2017-08-29 16:41:09 +03:00
2017-08-29 16:41:09 +03:00
2017-08-29 15:15:10 +03:00
2017-05-08 10:03:28 +03:00
2016-04-08 08:12:47 +03:00
2017-08-27 13:11:33 +03:00
2016-04-08 08:12:47 +03:00
2017-03-14 13:38:38 +02:00
2017-08-28 10:48:28 +03:00
2017-06-23 11:35:35 -04:00
2016-04-08 08:12:47 +03:00
2015-06-24 13:09:51 +03:00
2017-02-02 10:35:14 +00:00
2017-06-23 11:35:35 -04:00
2016-01-24 12:29:21 +02:00
2015-09-20 10:45:35 +03:00
2017-08-27 13:11:33 +03:00
2017-08-27 13:11:33 +03:00
2016-03-11 18:27:13 +00:00
2017-06-24 18:06:11 +02:00
2017-06-24 18:06:11 +02:00
2015-12-07 09:50:27 +01:00
2017-08-29 16:41:09 +03:00
2017-06-24 18:06:11 +02:00
2016-09-28 17:34:16 +03:00
2017-08-30 09:58:12 +01:00
2017-06-23 11:35:35 -04:00
2017-08-11 13:08:42 +02:00
2017-08-29 16:41:09 +03:00

Scylla

Quick-start

$ git submodule update --init --recursive
$ sudo ./install-dependencies.sh
$ ./configure.py --mode=release
$ ninja-build -j4 # Assuming 4 system threads.
$ ./build/release/scylla
$ # Rejoice!

Please see HACKING.md for detailed information on building and developing Scylla.

Running Scylla

  • Run Scylla
./build/release/scylla

  • run Scylla with one CPU and ./tmp as data directory
./build/release/scylla --datadir tmp --commitlog-directory tmp --smp 1
  • For more run options:
./build/release/scylla --help

Building Fedora RPM

As a pre-requisite, you need to install Mock on your machine:

# Install mock:
sudo yum install mock

# Add user to the "mock" group:
usermod -a -G mock $USER && newgrp mock

Then, to build an RPM, run:

./dist/redhat/build_rpm.sh

The built RPM is stored in /var/lib/mock/<configuration>/result directory. For example, on Fedora 21 mock reports the following:

INFO: Done(scylla-server-0.00-1.fc21.src.rpm) Config(default) 20 minutes 7 seconds
INFO: Results and/or logs in: /var/lib/mock/fedora-21-x86_64/result

Building Fedora-based Docker image

Build a Docker image with:

cd dist/docker
docker build -t <image-name> .

Run the image with:

docker run -p $(hostname -i):9042:9042 -i -t <image name>

Contributing to Scylla

Guidelines for contributing

Description
No description provided
Readme 502 MiB
Languages
C++ 72.1%
Python 26.7%
CMake 0.3%
GAP 0.3%
Shell 0.3%