mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-31 03:56:42 +00:00
83323e155e2f26ead355b45b64531980e8ca66ff
run_with_compaction_disabled(), which is called by truncate, has a pretty large defer point in remove(). When the code gets to finally execute, we can't guarantee that the column family will still be alive. That is true in particular if we issued a drop table command following truncate: by the time truncate gets to resume, the CF will be gone. Before the column family is dropped, it will always call its stop() method, which means we have an opportunity to do some waiting there. We already wait for flushes and current compactions to end. Traditionally, we have been solving similar problems by adding a gate that will catch asynchronous operations and making sure that potentially asynchronous operations will enter the gate before executing. Let's do the same thing here. We will close() the gate during stop(). Fixes #2726 Signed-off-by: Glauber Costa <glauber@scylladb.com>
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.3%
Python
26.5%
CMake
0.3%
GAP
0.3%
Shell
0.3%