mirror of
https://github.com/scylladb/scylladb.git
synced 2026-06-07 07:23:15 +00:00
4db0b4af585cd5eb5b52d0981d067d733bae2251
" This patch series fixes #3405: secondary-index search only provided correct results in certain cases, where entire partitions or contiguous partition slices matched the query. When this was not the case, and individual clustering rows match or do not match the query, the wrong results were returned. To fix this bug, we need to fix the two stages of secondary-index search: 1. In the first stage, we read from the index MV a list of row keys (i.e., primary keys) matching the query. We can no longer remember just the partition keys, and need to keep the list of full primary keys. 2. In the second stage, we have a list of rows (not partitions) and need to read their selected contents to return to the user. Since CQL queries do not have a syntax to select an arbitrary list of rows, we have to add new code to do such a selection. Because we provide an ad-hoc, inefficient, implementation for the row selection described in stage 2, these patches leave two paths in the code: The old path, efficiently selecting entire partitions, and the new path, selecting individual rows. The old path is still used when it is applicable, which is when a partition key column or the first clustering key column is searched. " * 'si-fix-v4' of http://github.com/nyh/scylla: secondary index: test multiple clustering column secondary index: fix wrong results returned in certain cases secondary index: method for fetching list of rows from base table secondary index: method for fetching list of rows from index select_statement.cc: refactor find_index_partition_ranges() select_statement.cc: fix variable lifetime errors
…
…
…
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%