Skip to content

Tags: tzach/scylla

Tags

scylla-2.3.4

Toggle scylla-2.3.4's commit message
release: prepare for 2.3.4 by hagitsegev

scylla-3.0.4

Toggle scylla-3.0.4's commit message
sstable/compaction: Use correct schema in the writing consumer

Introduced in 2a437ab.

regular_compaction::select_sstable_writer() creates the sstable writer
when the first partition is consumed from the combined mutation
fragment stream. It gets the schema directly from the table
object. That may be a different schema than the one used by the
readers if there was a concurrent schema alter duringthat small time
window. As a result, the writing consumer attached to readers will
interpret fragments using the wrong version of the schema.

One effect of this is storing values of some columns under a different
column.

This patch replaces all column_family::schema() accesses with accesses
to the _schema memeber which is obtained once per compaction and is
the same schema which readers use.

Fixes scylladb#4304.

Tests:

  - manual tests with hard-coded schema change injection to reproduce the bug
  - build/dev/scylla boot
  - tests/sstable_mutation_test

Message-Id: <[email protected]>
(cherry picked from commit 58e7ad2)

scylla-2.3.3

Toggle scylla-2.3.3's commit message
release: prepare for 2.3.3 by hagitsegev

scylla-3.0.3

Toggle scylla-3.0.3's commit message
release: prepare for 3.0.3 by hagitsegev

scylla-3.0.2

Toggle scylla-3.0.2's commit message
release: prepare for 3.0.2 by slivne

scylla-3.0.1

Toggle scylla-3.0.1's commit message
release: prepare for 3.0.1 by hagitsegev

scylla-2.3.2

Toggle scylla-2.3.2's commit message
Update scylla-ami submodule

* dist/ami/files/scylla-ami a425887...fe156a5 (1):
  > scylla_install_ami: update NIC drivers

See scylladb/scylla-ami#44

scylla-3.0.0

Toggle scylla-3.0.0's commit message
row_cache: Fix crash on memtable flush with LCS

Presence checker is constructed and destroyed in the standard
allocator context, but the presence check was invoked in the LSA
context. If the presence checker allocates and caches some managed
objects, there will be alloc-dealloc mismatch.

That is the case with LeveledCompactionStrategy, which uses
incremental_selector.

Fix by invoking the presence check in the standard allocator context.

Fixes scylladb#4063.

Message-Id: <[email protected]>
(cherry picked from commit 32f711c)

scylla-3.0.rc4

Toggle scylla-3.0.rc4's commit message
compaction_controller: increase minimum shares to 50 (~5%) for small-…

…data workloads

The workload in scylladb#3844 has these characteristics:
 - very small data set size (a few gigabytes per shard)
 - large working set size (all the data, enough for high cache miss rate)
 - high overwrite rate (so a compaction results in 12X data reduction)

As a result, the compaction backlog controller assigns very few shares to
compaction (low data set size -> low backlog), so compaction proceeds very slowly.
Meanwhile, we have tons of cache misses, and each cache miss needs to read from a
large number of sstables (since compaction isn't progressing). The end result is
a high read amplification, and in this test, timeouts.

While we could declare that the scenario is very artificial, there are other
real-world scenarios that could trigger it. Consider a 100% write load
(population phase) followed by 100% read. Towards the end of the last compaction,
the backlog will drop more and more until compaction slows to a crawl, and until
it completes, all the data (for that compaction) will have to be read from its
input sstables, resulting in read amplification.

We should probably have read amplification affect the backlog, but for now the
simpler solution is to increase the minimum shares to 50 so that compaction
always makes forward progress. This will result in higher-than-needed compaction
bandwidth in some low write rate scenarios so we will see fluctuations in request
rate (what the controller was designed to avoid), but these fluctioations will be
limited to 5%.

Since the base class backlog_controller has a fixed (0, 0) point, remove it
and add it to derived classes (setting it to (0, 50) for compaction).

Fixes scylladb#3844 (or at least improves it).
Message-Id: <[email protected]>

(cherry picked from commit b0980ba)

scylla-3.0.rc3

Toggle scylla-3.0.rc3's commit message
service/storage_proxy: Protect against empty mutation when storing hint

mutation_holder::get_mutation_for() can return nullptr's, so protect
against those when storing a hint.

Signed-off-by: Duarte Nunes <[email protected]>
Message-Id: <[email protected]>
(cherry picked from commit e6a8883)