mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-30 11:36:54 +00:00
e49a14e308ac82fa651c778e274d77bedae595e7
" This series extends the query statefullness, introduced byf8613a841to point queries, to range scans as well. This means that queriers will be saved and reused for range scans too. This series builds heavily on the infrastructure introduced by stateful point queries, namely the querier object and the querier_cache. It also builds on another critical piece of infrastructure, the multishard_combining_reader, introduced by2d126a79b. To make the range scan on a given node suspendable and resumable we move away from the current code in `storage_proxy::query_nonsingular_mutations_locally()` and use a multishard_combining_reader to execute the read. When the page is filled this reader is dismantled and its shard readers are saved in the querier cache. There are of course a lot more details to it but this is the gist of it. Tests: unit(release, debug), dtest(paging_test.py, paging_additional_test.py) " * '1865/range-scans/v7.1' of https://github.com/denesb/scylla: (33 commits) query_pagers: generate query_uuid for range-scans as well storage_proxy: use preferred/last replicas storage_proxy: add preferred/last replicas to the signature of query_partition_key_range_concurrent db::consistency_level::filter_for_query() add preferred_endpoints storage_proxy: use query_mutations_from_all_shards() for range scans tests: add unit test for multishard_mutation_query() tests/mutation_assertions.hh: add missing include multishard_mutation_query: add badness counters database: add query_mutations_on_all_shards() mutation_compactor: add detach_state() flat_mutation_reader: add unpop_mutation_fragment() Move reconcilable_result_builder declaration to mutation_query.hh mutation_source_test: add an additional REQUIRE() mutation: add missing assert to mutation from reader querier: add shard_mutation_querier querier: prepare for multi-ranges tests/querier_cache: add tests specific for multiple entry-types querier: split querier into separate data and mutation querier types querier: move consume_page logic into a free function querier: move all matching related logic into free functions ...
…
…
…
…
…
…
…
…
…
…
…
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%