mirror of
https://github.com/scylladb/scylladb.git
synced 2026-06-03 05:26:58 +00:00
The series is on top of "wire up schema raft state machine". It will apply without, but will not work obviously (when raft is disabled it does nothing anyway). This series does not provide any linearisability just yet though. It only uses raft as a means to distribute schema mutations. To achieve linearisability more work is needed. We need to at lease make sure that schema mutation use monotonically increasing timestamps and, since schema altering statement are RMW, no modification to schema were done between schema mutation creation and application. If there were an operation needs to be restarted. * scylla-dev/gleb/raft-schema-v5: (59 commits) cql3: cleanup mutation creation code in ALTER TYPE cql3: use migration_manager::schema_read_barrier() before accessing a schema in altering statements cql3: bounce schema altering statement to shard 0 migration_manager: add is_raft_enabled() to check if raft is enabled on a cluster migration_manager: add schema_read_barrier() function migration_manager: make announce() raft aware migration_manager: co-routinize announce() function migration_manager: pass raft_gr to the migration manager migration_manager: drop view_ptr array from announce_column_family_update() mm: drop unused announce_ methods cql3: drop schema_altering_statement::announce_migration() cql3: drop has_prepare_schema_mutations() from schema altering statement cql3: drop announce_migration() usage from schema_altering_statement cql3: move DROP AGGREGATE statement to prepare_schema_mutations() api migration_manager: add prepare_aggregate_drop_announcement() function cql3: move DROP FUNCTION statement to prepare_schema_mutations() api migration_manager: add prepare_function_drop_announcement() function cql3: move CREATE AGGREGATE statement to prepare_schema_mutations() api migration_manager: add prepare_new_aggregate_announcement() function cql3: move CREATE FUNCTION statement to prepare_schema_mutations() api ...