mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-31 03:56:42 +00:00
6154ea734d5783da3b425b2cf5e4efb758f4a8a3
" This patch series introduces initial support for writing SSTables in 'mc' format (aka SSTables 3.0). Currently, the following components are written in 3.0 format: - Data.db - Index.db - Summary.db (there were no changes to summary files format compared to ka/la) Other SSTables components are written in the old format for now as they still need to exist to satisfy post-flush processing. For now, only rows are written to the data file and indexed. Range tombstones are not supported. Writing rows is supported in full with the only exception being counter cells. All the other features (TTLed data, row/cell level tombstones, collections, etc) are supported. Unit tests rely on producing files and binary-comparing them with 'golden' copies that are produced using Cassandra 3.11. This is done to not block until reading SSTables 3.0 format is implemented. ======================================= Implementation notes ======================================= Internally, sstable_writer has been refactored to support multiple implementations that are instantiated in its constructor based on the sstable version. Little to no code is shared among sstable_writer_v2 and sstable_writer_v3 as we only intend to support sstable_writer_v2 alongside sstable_writer_v3 for a single release (to be able to do rollback on rolling upgrade failure) and then plan to get rid of it entirely and switch to always writing SSTables in the new format. The design of sstable_writer_v3 mostly follows that of its precursors sstable_writer(_v2) and components_writer. Some refactoring and further code rearrangements are expected in the future but the main code is there. " * 'projects/sstables-30/write-rows/v2' of https://github.com/argenet/scylla: Add tests for writing data and index files in SSTables 3.0 ('mc') format. Support for writing SSTables 3.0 ('mc') Data.db and Index.db files - rows only. Add missing enum values to bound_kind. Add building blocks for writing data in SSTables 3.0 format. Refactor sstable_writer to support various internal implementations. Add is_fixed_length() to data types. Add mutation_partition::apply_insert() overload that accepts TTL and expiry for row marker.
…
…
…
…
…
…
…
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%