mirror of
https://github.com/scylladb/scylladb.git
synced 2026-06-06 15:03:06 +00:00
2b3ee4b0a7f401fcd18693a16247f028648dacc7
"We have recently found two problems with the drop_column_family code that needs addressing. The first is that exceptions in truncate() may lead to stop() being skipped, which can cause Scylla to crash. The other is that a truncate() issued before drop_column_family may get the chance to execute only after the column family is already dropped and also crash (That is issue 2726). The second problem is the classic problem of asynchronous execution on an object that may terminate, which we have been traditionally solving with a gate. We add a gate to the column family that will be closed during CF stop(), and we will require all asychronous operations to enter it. The immediate fix is for truncate(), where we have seen a real, concrete problem. But it would be good to audit other code paths to make sure that they are sane. The most obvious ones, flush, compaction and sstable deletion are already sane, since they are waited on explicitly during stop()." Fixes #2726. * 'issue-2726-v2-master' of github.com:glommer/scylla: database: add gate for generic async operations to column family database: make sure that column family is always stopped when dropped
…
…
…
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
Description
Languages
C++
72.1%
Python
26.7%
CMake
0.3%
GAP
0.3%
Shell
0.3%