NoSQL data store using the seastar framework, compatible with Apache Cassandra
Switch branches/tags
Clone or download
duarten and avikivity service/storage_proxy: Embed the expire timer in the response handler
Embedding the expire timer for a write response in the
abstract_write_response_handler simplifies the code as it allows
removing the rh_entry type.

It will also make the timeout easily accessible inside the handler,
for future patches.

Signed-off-by: Duarte Nunes <duarte@scylladb.com>
Message-Id: <20181213111818.39983-1-duarte@scylladb.com>
Latest commit f887823 Dec 13, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github github: direct users asking questions to our mailing list. Jun 21, 2018
api sstables: store cf pointer in compaction_info Nov 24, 2018
auth Merge "Remove some dependencies on db::config" from Avi Dec 10, 2018
conf conf: clean up cassandra references in scylla.yaml Nov 21, 2018
cql3 secondary indexes: fail attempts to create a CUSTOM INDEX Dec 11, 2018
data data::cell: expose size overhead of external chunks Jun 28, 2018
db large_partition_handler: fix the message Dec 13, 2018
debug debug: scylla_row_cache_report: Remove duplicated phrase from printout Mar 7, 2018
dht config: remove inclusions of db/config.hh from header files Dec 9, 2018
dist scylla_io_setup: correct units in low space warning Dec 10, 2018
docs doc: fix BYPASS CACHE documentation Nov 26, 2018
exceptions Update seastar submodule Nov 20, 2018
gms Merge "Remove some dependencies on db::config" from Avi Dec 10, 2018
idl partition_slice: use small_vector for column_ids Dec 6, 2018
imr imr: detect lsa migrator mismatch Aug 1, 2018
index Update seastar submodule Nov 20, 2018
interface thrift: change generated code namespace May 5, 2017
libdeflate @ e7e54ea Update libdeflate submodule Dec 3, 2018
licenses licenses: Add libdeflate license Nov 26, 2018
locator Update seastar submodule Nov 20, 2018
message Update seastar submodule Nov 20, 2018
reloc build: pass C compiler configuration in relocatable package build Dec 12, 2018
repair repair: remove unneeded config.hh inclusion Dec 9, 2018
scripts scripts/: add / normalize python3 shebang Nov 28, 2018
seastar @ 132e6cd Update seastar submodule Nov 28, 2018
service service/storage_proxy: Embed the expire timer in the response handler Dec 13, 2018
sstables Fix end marker exception message. Dec 13, 2018
streaming streaming: don't check view building of system tables Nov 28, 2018
swagger-ui @ 12f1da1 Update swagger-ui submodule Nov 27, 2018
tests Add tests for broken start and end composite markers. Dec 13, 2018
thrift Merge "Remove some dependencies on db::config" from Avi Dec 10, 2018
tools tools: add SYS_PTRACE capability to dbuild Dec 11, 2018
tracing tracing: convert sprint() to format() Nov 1, 2018
transport Update seastar submodule Nov 20, 2018
utils Merge "Use utils::small_vector more in read path" from Paweł Dec 10, 2018
xxHash @ 744892b Add xxhash (fast non-cryptographic hash) as submodule Feb 1, 2018
.dockerignore tools: add frozen toolchain support Dec 2, 2018
.gitattributes Add .gitattributes file to classify C++ source Oct 5, 2015
.gitignore .gitignore: add resources directory Jun 19, 2018
.gitmodules Add libdeflate submodule Nov 26, 2018
.gitorderfile gitorderfile: make changes into *.py files appear first May 12, 2015
CMakeLists.txt Integrate libdeflate with the build system Nov 26, 2018
CONTRIBUTING.md CONTRIBUTING.md: add sections for help and issues Nov 18, 2016
Doxyfile docs: exclude dpdk Jun 24, 2015
HACKING.md Mention scylla-tools-java and scylla-jmx in HACKING.md Nov 21, 2018
IDL.md Add an IDL definition file Jan 24, 2016
LICENSE.AGPL Add the AGPL license Sep 20, 2015
MAINTAINERS scripts/find-maintainer: Find subsystem maintainer Jan 30, 2018
NOTICE.txt utils::crc32: add power64 crc32 HW accelerated implementation Dec 8, 2017
ORIGIN Update ORIGIN for gossip and storage_service Dec 1, 2015
README-DPDK.md README: fix typos and paramter syntax Jun 28, 2015
README.md README.md: Add quick-start section and defer to `HACKING.md` Jul 25, 2017
SCYLLA-VERSION-GEN build: improve support for custom builds Jan 22, 2017
atomic_cell.cc atomic_cell_or_collection: make operator<< show cell content Oct 24, 2018
atomic_cell.hh Update seastar submodule Nov 20, 2018
atomic_cell_hash.hh atomic_cell: switch to new IMR-based cell reperesentation May 31, 2018
atomic_cell_or_collection.hh atomic_cell_or_collection: make operator<< show cell content Oct 24, 2018
backlog_controller.hh controller: adjust constants for compaction controller Jun 18, 2018
bytes.cc Update seastar submodule Nov 20, 2018
bytes.hh Update seastar submodule Nov 20, 2018
bytes_ostream.hh bytes_ostream: Optimize writing of fixed-size types Dec 10, 2018
cache_flat_mutation_reader.hh atomic_cell_or_collection: make operator<< show cell content Oct 24, 2018
caching_options.hh Update seastar submodule Nov 20, 2018
canonical_mutation.cc toplevel: convert sprint() to format() Nov 1, 2018
canonical_mutation.hh remove db/serializer.hh includes Mar 2, 2016
cartesian_product.hh Fix pre-ScyllaDB copyright statements Apr 8, 2016
cell_locking.hh cell_locking: Use xxhash instead of fnv1a Aug 23, 2018
checked-file-impl.hh checked_file_impl: remove unneeded variant of open_checked_file_dma Nov 13, 2017
clocks-impl.cc Move common clock implementation helpers Jun 23, 2017
clocks-impl.hh Move common clock implementation helpers Jun 23, 2017
clustering_bounds_comparator.hh Use std::reference_wrapper instead of a plain reference in bound_view. Jun 28, 2018
clustering_key_filter.hh clustering_key_filter_ranges: Fix move assignment to avoid undefined … Aug 8, 2018
clustering_ranges_walker.hh sstables: Use uppermost_bound() instead of upper_bound() in mutation_… Oct 12, 2018
coding-style.md Add `coding-style.md` referencing Seastar Oct 30, 2017
combine.hh Fix pre-ScyllaDB copyright statements Apr 8, 2016
compaction_strategy.hh compaction: introduce notion of compaction-strategy-aware major compa… Dec 6, 2018
compatible_ring_position_view.hh sstables_set::incremental_selector: use ring_position instead of token Jul 4, 2018
compound.hh Update seastar submodule Nov 20, 2018
compound_compat.hh toplevel: convert sprint() to format() Nov 1, 2018
compress.cc compress: add support for Cassandra's compression parameter Dec 11, 2018
compress.hh compress: add support for Cassandra's compression parameter Dec 11, 2018
configure.py build: build libdeflate with user selected C compiler Dec 11, 2018
converting_mutation_partition_applier.hh converting_mutation_partition_applier: do not emit empty collections Nov 22, 2018
counters.cc atomic_cell: switch to new IMR-based cell reperesentation May 31, 2018
counters.hh atomic_cell: switch to new IMR-based cell reperesentation May 31, 2018
cql_serialization_format.hh Replace iostream include with iosfwd in headers Jan 17, 2017
database.cc Merge "Use utils::small_vector more in read path" from Paweł Dec 10, 2018
database.hh Merge "Make inactive shard readers evictable" from Botond Dec 4, 2018
database_fwd.hh database: rename column_family to table Jun 24, 2018
db_clock.hh Seal clock definitions Jun 23, 2017
debug.hh Fix pre-ScyllaDB copyright statements Apr 8, 2016
digest_algorithm.hh service/storage_service: Add and use xxhash feature Feb 1, 2018
digester.hh row: Use cached hash for hash calculation Feb 1, 2018
dirty_memory_manager.hh database: guarantee a minimum amount of shares when manual operations… Sep 27, 2018
disk-error-handler.cc Move `thread_local` declarations out of `main.cc` Nov 27, 2017
disk-error-handler.hh Update seastar submodule Nov 20, 2018
duration.cc Merge seastar upstream Oct 25, 2018
duration.hh Change `const` qualifier declaration order for `duration` Aug 10, 2017
encoding_stats.hh Fix timestamp_epoch value which was truncated on exceeding int32_t ty… May 4, 2018
enum_set.hh enum_set: Add iterator Feb 14, 2018
fix_system_distributed_tables.py fix_system_distributed_tables.py: fix python3 compat and shebang Nov 28, 2018
flat_mutation_reader.cc make_flat_multi_range_reader: add generator overload Sep 28, 2018
flat_mutation_reader.hh flat_mutation_reader: document next_partition() Nov 14, 2018
frozen_mutation.cc flat_mutation_reader: make timeout opt-out rather than opt-in Sep 20, 2018
frozen_mutation.hh service/storage_proxy: Lift frozen_mutation_and_schema Oct 7, 2018
frozen_schema.cc schema_tables: Require context object in schema load path Feb 7, 2018
frozen_schema.hh schema_tables: Require context object in schema load path Feb 7, 2018
gc_clock.hh gc_clock: introduce operator<<(ostream&, gc_clock::time_point) Dec 6, 2017
gen_segmented_compress_params.py gen_segmented_compress_params.py: add encoding comment Nov 28, 2018
hashing.hh Merge seatar upstream (seastar namespace) May 21, 2017
hashing_partition_visitor.hh range_tombstone: Replace feed_hash() member function with appending_hash Feb 1, 2018
idl-compiler.py idl-compiler.py: python3 shebang Nov 28, 2018
init.cc config: remove inclusions of db/config.hh from header files Dec 9, 2018
init.hh config: remove inclusions of db/config.hh from header files Dec 9, 2018
install-dependencies.sh install-dependencies.sh: add missing packages to run build in Fedora … Dec 2, 2018
install.sh dist: don't distribute posix_net_conf.sh any more Oct 31, 2018
intrusive_set_external_comparator.hh intrusive_set_external_comparator: make iterator nothrow move constru… Dec 5, 2018
json.cc toplevel: convert sprint() to format() Nov 1, 2018
json.hh Update seastar submodule Nov 20, 2018
keys.cc keys: schema-aware printing of a partition_key Jul 17, 2018
keys.hh Merge "Support reading range tombstones" from Piotr and Vladimir Aug 27, 2018
lister.cc database: directly use std::experimental::filesystem::path for lister… Dec 2, 2018
lister.hh database: directly use std::experimental::filesystem::path for lister… Dec 2, 2018
log.hh Merge seastar upstream Aug 27, 2017
main.cc batchlog_manager: remove dependency on db::config Dec 9, 2018
map_difference.hh map_difference: Allow on unordered_map Apr 20, 2016
marshal_exception.hh Use meaningful error messages when throwing a marshal_exception Nov 21, 2017
md5_hasher.hh Fix Scylla compilation with Crypto++ v6. Mar 4, 2018
memtable-sstable.hh database, sstables, tests: add large_partition_handler May 4, 2018
memtable.cc atomic_cell_or_collection: make operator<< show cell content Oct 24, 2018
memtable.hh memtable: Track regular and shadowable tombstones separately in encod… Oct 23, 2018
multishard_mutation_query.cc query_mutations_on_all_shards(): implement pause-resume API Dec 4, 2018
multishard_mutation_query.hh database: add query_mutations_on_all_shards() Sep 3, 2018
multishard_writer.cc flat_mutation_reader: make timeout opt-out rather than opt-in Sep 20, 2018
multishard_writer.hh multishard_writer: Introduce multishard_writer Jun 28, 2018
mutation.cc toplevel: convert sprint() to format() Nov 1, 2018
mutation.hh flat_mutation_reader: make timeout opt-out rather than opt-in Sep 20, 2018
mutation_cleaner.hh memtable, cache: Run mutation_cleaner worker in its own scheduling group Jun 27, 2018
mutation_compactor.hh mutation_compactor: add detach_state() Sep 3, 2018
mutation_fragment.cc atomic_cell_or_collection: make operator<< show cell content Oct 24, 2018
mutation_fragment.hh atomic_cell_or_collection: make operator<< show cell content Oct 24, 2018
mutation_partition.cc partition_slice: use small_vector for column_ids Dec 6, 2018
mutation_partition.hh atomic_cell_or_collection: make operator<< show cell content Oct 24, 2018
mutation_partition_applier.hh treewide: require type for creating collection_mutation_view May 31, 2018
mutation_partition_serializer.cc atomic_cell: introduce fragmented buffer value interface May 31, 2018
mutation_partition_serializer.hh utils: drop data_output Sep 18, 2018
mutation_partition_view.cc mutation_partition_view: use column_mapping_entry::is_atomic() Jun 28, 2018
mutation_partition_view.hh mutation_partition_view: pass cell by value to visitor Jun 28, 2018
mutation_partition_visitor.hh mutation_partition: Add support for specifying continuity Jun 24, 2017
mutation_query.cc query-result: Introduce class result_options Feb 1, 2018
mutation_query.hh Move reconcilable_result_builder declaration to mutation_query.hh Sep 3, 2018
mutation_reader.cc Merge "Use utils::small_vector more in read path" from Paweł Dec 10, 2018
mutation_reader.hh multishard_combining_reader: use pause-resume API Dec 4, 2018
mutation_rebuilder.hh Swap arguments order of mutation constructor Jan 21, 2018
noexcept_traits.hh Introduce noexcept_traits Dec 7, 2015
partition_builder.hh mutation_partition_view: pass cell by value to visitor Jun 28, 2018
partition_range_compat.hh Convert to use dht::partition_range_vector and dht::token_range_vector Dec 19, 2016
partition_slice_builder.cc partition_slice: use small_vector for column_ids Dec 6, 2018
partition_slice_builder.hh partition_slice: use small_vector for column_ids Dec 6, 2018
partition_snapshot_reader.hh mvcc: Use RAII to ensure that partition versions are merged Jun 27, 2018
partition_snapshot_row_cursor.hh partition_snapshot_row_cursor: initialize _dummy and _continuous Jun 2, 2018
partition_version.cc atomic_cell_or_collection: make operator<< show cell content Oct 24, 2018
partition_version.hh atomic_cell_or_collection: make operator<< show cell content Oct 24, 2018
partition_version_list.hh mvcc: Introduce partition_version_list May 30, 2018
position_in_partition.hh position_in_partition: add region() accessor Dec 4, 2018
querier.cc querier: fix evict_one() and evict_all_for_table() Dec 5, 2018
querier.hh reader_concurrency_semaphore: refactor eviction mechanism Dec 4, 2018
query-request.hh partition_slice: use small_vector for column_ids Dec 6, 2018
query-result-reader.hh query::result_view: add get_last_partition_and_clustering_key() Jul 26, 2018
query-result-set.cc query::result: avoid copying and linearising cell value Jun 25, 2018
query-result-set.hh Update seastar submodule Nov 20, 2018
query-result-writer.hh query-result: Use digester instead of md5_hasher Feb 1, 2018
query-result.hh result_memory_accounter: drop state_for_another_shard() Oct 8, 2018
query.cc partition_slice: use small_vector for column_ids Dec 6, 2018
query_result_merger.hh Update seastar submodule Nov 20, 2018
range.hh range: clean the deduced transformed type May 10, 2018
range_tombstone.cc Use std::reference_wrapper instead of a plain reference in bound_view. Jun 28, 2018
range_tombstone.hh Merge "Multiple fixes to tests/normalizing_reader" from Vladimir Sep 27, 2018
range_tombstone_list.cc Merge "Make in-memory partition version merging preemptable" from Tomasz Jul 1, 2018
range_tombstone_list.hh Merge "Make in-memory partition version merging preemptable" from Tomasz Jul 1, 2018
read_context.hh flat_mutation_reader: make timeout opt-out rather than opt-in Sep 20, 2018
reader_concurrency_semaphore.cc querier: fix evict_one() and evict_all_for_table() Dec 5, 2018
reader_concurrency_semaphore.hh querier: fix evict_one() and evict_all_for_table() Dec 5, 2018
real_dirty_memory_accounter.hh cache: real_dirty_memory_accounter: Move unpinning out of the hot path May 30, 2018
release.cc toplevel: convert sprint() to format() Nov 1, 2018
release.hh Fix pre-ScyllaDB copyright statements Apr 8, 2016
reversibly_mergeable.hh Fix pre-ScyllaDB copyright statements Apr 8, 2016
row_cache.cc Update seastar submodule Nov 20, 2018
row_cache.hh Update seastar submodule Nov 20, 2018
schema.cc schema_builder: make member function names less confusing Nov 22, 2018
schema.hh schema: Optimize column count getters Nov 21, 2018
schema_builder.hh schema_builder: make member function names less confusing Nov 22, 2018
schema_mutations.cc schema: persist "view virtual" columns to a separate system table Aug 16, 2018
schema_mutations.hh schema: persist "view virtual" columns to a separate system table Aug 16, 2018
schema_registry.cc toplevel: convert sprint() to format() Nov 1, 2018
schema_registry.hh schema_tables: Require context object in schema load path Feb 7, 2018
schema_upgrader.hh atomic_cell: require column_definition for creating atomic_cell views May 31, 2018
scylla-gdb.py scylla-gdb.py: python3 shebang Nov 28, 2018
scylla-housekeeping scylla-housekeeping: fix python3 compat and shebang Nov 28, 2018
seastarx.hh seastarx: add missing make_shared forward declaration Jun 22, 2017
serialization_visitors.hh serialization_visitors: add support for memory_output_stream Sep 18, 2018
serializer.hh idl: serialiser: add serialiser for utils::small_vector Dec 6, 2018
serializer_impl.hh idl: serialiser: add serialiser for utils::small_vector Dec 6, 2018
setup.py setup.py: add python3 classifiers Nov 28, 2018
stdx.hh seastarx: don't make seastar namespace inline Jun 22, 2017
supervisor.cc toplevel: convert sprint() to format() Nov 1, 2018
supervisor.hh Merge seatar upstream (seastar namespace) May 21, 2017
table.cc partition_slice: use small_vector for column_ids Dec 6, 2018
table_helper.cc cql: Add schema extensions processing to properties Feb 7, 2018
table_helper.hh toplevel: convert sprint() to format() Nov 1, 2018
test.py Merge "Use utils::small_vector more in read path" from Paweł Dec 10, 2018
timeout_config.hh timeout_config: introduce timeout configuration Apr 29, 2018
timestamp.hh Seal clock definitions Jun 23, 2017
to_string.hh Update seastar submodule Nov 20, 2018
tombstone.hh mutation_partition: Define + operator on tombstones Feb 6, 2018
tox.ini Add overall python code QA and guidelines with flake8 Aug 8, 2017
types.cc utils: optimize UTF-8 validation Dec 5, 2018
types.hh Update seastar submodule Nov 20, 2018
unimplemented.cc Update seastar submodule Nov 20, 2018
unimplemented.hh Update seastar submodule Nov 20, 2018
validation.cc toplevel: convert sprint() to format() Nov 1, 2018
validation.hh Update seastar submodule Nov 20, 2018
version.hh Update seastar submodule Nov 20, 2018
view_info.hh view: add is_index method Jun 5, 2018
vint-serialization.cc Add signed_vint::serialized_size_from_first_byte May 9, 2018
vint-serialization.hh Add signed_vint::serialized_size_from_first_byte May 9, 2018
xx_hasher.hh digest: Introduce xxHash hash algorithm Feb 1, 2018

README.md

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

Guidelines for contributing