Commit Graph

45561 Commits

Author SHA1 Message Date
Aleksandra Martyniuk
4e2cd8640c test: add test to check tablet repair tasks 2024-11-28 12:15:42 +01:00
Aleksandra Martyniuk
ab3858e050 test: topology_tasks: enable tablets
Tablets are no longer an experimental feature, but topology_tasks test
suite treats them as if they were.

Enable tablets with their own config option in topology_tasks suite.
2024-11-28 11:42:40 +01:00
Aleksandra Martyniuk
4829dd9de8 service: keep tablets module in storage_service 2024-11-28 11:42:40 +01:00
Aleksandra Martyniuk
6105e6f85c service: rename storage_service::_task_manager_module
Rename storage_service::_task_manager_module to _node_ops_module.
In the following patches, storage service will keep two different
task manager modules.
2024-11-28 11:42:40 +01:00
Aleksandra Martyniuk
409ed508cc service: add tablet_virtual_task
Add tablet_virtual_task, which covers tablet repair.
2024-11-28 11:42:38 +01:00
Aleksandra Martyniuk
898c8f4e24 tasks: utilize preliminary virtual task lookup
When API user requests status of a virtual task, we first need to find
which virtual_task instance tracks given operation. While doing this we
gather some info regarding the task, but we don't utilize it.

Add virtual_task_hint that keeps info that was gathered during virtual
task lookup and pass it to virtual_task's methods so the info doesn't
need to be retrieved twice.
2024-11-28 11:27:16 +01:00
Kefu Chai
5e391eee25 treewide: use coroutine::parallel_for_each(range) when appropriate
`coroutine::parallel_for_each` accepts both a range and a pair of
iterators. let's use the former when appropriate. it is simpler this way.

Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>

Closes scylladb/scylladb#21684
2024-11-27 21:00:47 +02:00
Botond Dénes
20bbb1113e test/cqlpy: test_tools.py: use xfail more selectively
ScyllaDB doesn't support counters with tablets yet. So scylla-sstable
tests which use counter schema are marked with xfail, but this is done
too aggressively, disabling too many tests that are otherwise fine.
There are two tests affected:
* test_scylla_sstable_script - this test uses early return when the
  schema parameter is the one with counters and tablets are enabled.
  This is still too eager because tablets are now always enabled. Also,
  the early return make the fact that this test is disabled hidden.
  So change the check to check whether tablets are used on the test
  keyspace and use xfail instead of sneaky early return.
* test_scylla_sstable_dump_data - this test is blanket-disabled when run
  with the tablets parameter. Even though only 1 out of 5 schemas tested
  use counters. Remove the blanket xfail and only add it when test
  keyspace uses tablets and the schema parameter is the one with
  counters.

This makes dozens of test run again, restoring the test coverage lost
with the too eager use of xfail (and sneaky return).

Refs: #18180

Closes scylladb/scylladb#21685
2024-11-27 12:17:56 +03:00
Kefu Chai
8ca1c57de0 test: s3_proxy: bring back InjectingHandler.log_message
in 0dff187b7a, we dropped `InjectingHandler.log_message()`, but this
method was defined to override the default implementation provided by
`BaseHTTPRequestHandler.log_message()`. this change flooded the standard
output when testing `aws_error_injection_test` with `test.py` with
logging messages like:
```
127.0.0.1 - - [26/Nov/2024 17:27:34] "PUT /?Policy=0&Key=%2Ftest%2Ftestobject-large-817295 HTTP/1.1" 200
127.0.0.1 - - [26/Nov/2024 17:27:34] "PUT /?Policy=1&Key=%2Ftest%2Ftestobject-large-817306 HTTP/1.1" 200
```

this is unexpected.

in this change, we bring this method back, and additionally, we
format the logging message lazily.

Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>

Closes scylladb/scylladb#21689
2024-11-27 12:16:36 +03:00
Botond Dénes
87bdfb80aa docs/dev/reader-concurrency-semaphore.md: fix formatting of diagnostics dump
Indent the whole thing so it is formatted as code, not as text.

Closes scylladb/scylladb#21693
2024-11-27 12:13:16 +03:00
Botond Dénes
ccb433d767 Merge 'tasks: add api_task_ttl for tasks started with API' from Aleksandra Martyniuk
When users start an operation asynchronously with API, they are expected to check the operation's status. Hence, the status should be kept in task manager for reasonable time after the operation is done. The operations that are started internally usually don't need to stay in task manager for that long.

Add api_task_ttl that will be used for tasks started with API. By default it's 1 hour. The time for which non-API tasks stay in task manager isn't changed.

Fixes: #21499.
Refs: #21425.

No backport needed - previous versions may use task_ttl

Closes scylladb/scylladb#21505

* github.com:scylladb/scylladb:
  test: add test to check user_task_ttl
  tasks: api: move make_task method
  docs: nodetool: update backup and restore commands docs
  docs: update task manager docs
  nodetool: add nodetool tasks user-ttl command
  node_ops: use user task ttl for node ops virtual task
  tasks: use user_task_ttl for tasks started by user
  api: task_manager: add /task_manager/user_ttl to get and set user task ttl
  tasks: add task_manager::task::is_user_task method
  tasks: keep updateable_value of task_ttl in task manager
  db: config: add user_task_ttl_seconds named value
2024-11-27 09:57:57 +02:00
Nikita Kurashkin
4ba8a6b1b4 Fix test for DESC TABLE on materialised view to be compatible with Scylla AND Cassandra
Fixes #21026
Refs #21500

Closes scylladb/scylladb#21526
2024-11-27 09:49:23 +02:00
Pavel Emelyanov
4d10cd40f0 s3: Remove unused boost/algorithm/string/classification.hpp inclusion
Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>

Closes scylladb/scylladb#21690
2024-11-26 19:51:21 +02:00
Botond Dénes
98fa00499c Update seastar submodule
* seastar a5432364...72c7ac57 (13):
  > json2code: convert boost integer_range to std iota_view
  > utils/program-options: selection_value: make get_candidate_names() public
  > treewide: Trim trailing spaces
  > build: Clean up `compile_option` after FindSanitizers module
  > file: Convert file operations to use coroutines
  > websocket: Remove unnecessary condition in frame parsing
  > websocket: Fix logic when parsing header
  > websocket: Avoid memory copy when full websocket frames are received
  > websocket: Fix websocket frame parsing on partial packets
  > sharded.hh: remove inline from templates
  > reactor: fix reserve_io_control_blocks config name in error message
  > reactor: next_waitpid_timeout: contants can be defined as constexpr
  > reactor: coroutinize waitpid

Closes scylladb/scylladb#21688
2024-11-26 19:50:45 +02:00
Kamil Braun
1f5b83dc56 Merge 'docs: update admin-tools docs with deprecation and removal notice for java tools' from Botond Dénes
Java tools are deprecated and slated for removal in the next ScyllaDB release.
Update the admin-tools docs and make sure all java tool documentation pages have a notice reflecting this fact.

Fixes: https://github.com/scylladb/scylladb/issues/21149

Should be backported to 6.2, so users of the latest stable version can see the notice.

Closes scylladb/scylladb#21522

* github.com:scylladb/scylladb:
  docs: sstableloader.rst: add deprecation notice
  docs: admin-tools: update deprecation notice for sstable{dump,metadata}
  docs: tools_index.rst: remove deprecated sstablereset and sstablerepairedset tools
2024-11-26 17:03:56 +01:00
Ernest Zaslavsky
793f2c95d1 snapshots: Stop taking snapshots of MVs
Stop taking snapshots of MVs and allow taking snapshot of individual tables, now one can take a snapshot of any base table, any view or index. Also add tests to cover new cases both boost test (using cc code) and pytest (using the API)
Also, update documentation to reflect the change

fixes: #21339
fixes: #20760

Closes scylladb/scylladb#21433
2024-11-26 15:27:30 +02:00
Kamil Braun
9dc8926252 Merge 'a bunch of cleanups and enhancements to various services' from Gleb
Mostly no functional changes here except in patch 3.

* 'gleb/cleanups' of github.com:scylladb/scylla-dev:
  migration_manager: move migration manager verbs to the IDL
  storage_proxy: remove unused function
  storage_proxy: co-routinize handle_paxos_prepare
  storage_proxy: co-routinise handle_paxos_prune
  service: raft: no need to sync schema if the cluster is in raft topology mode
  messaging_service: co-routinize messaging_service::stop_client
  gossiper: rename apply_state_locally_without_listener_notification to apply_state_locally_in_shadow_round
2024-11-26 14:18:00 +01:00
Kefu Chai
a5ee0c896b treewide: migrate from boost::adaptors::filtered to std::views::filter
Modernize the codebase by replacing Boost range adaptors with C++23 standard library views,
reducing external dependencies and leveraging modern C++ language features.

Key Changes:
- Replace `boost::adaptors::filtered` with `std::views::filter`
- Remove `#include <boost/range/adaptor/filtered.hpp>`
- Utilize standard library range views

Motivation:
- Reduce project's external dependency footprint
- Leverage standard library's range and view capabilities
- Improve long-term code maintainability
- Align with modern C++ best practices

Implementation Challenges and Considerations:
1. Range Conversion and Move Semantics
   - `std::ranges::to` adaptor requires rvalue references
   - Necessitated updates to variable and parameter constness
   - Example: `cql3/restrictions/statement_restrictions.cc` modified to remove `const`
     from `common` to enable efficient range conversion

2. Range Iteration and Mutation
   - Range views may mutate internal state during iteration
   - Cannot pass ranges by const reference in some scenarios
   - Solution: Pass ranges by rvalue reference to explicitly indicate
     state invalidation

Limitations:
- One instance of `boost::adaptors::filtered` temporarily preserved
  due to lack of a C++23 alternative for `boost::join()`
- A comprehensive replacement will be addressed in a follow-up change

This change is part of our ongoing effort to modernize the codebase,
reducing external dependencies and adopting modern C++ practices.

Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>

Closes scylladb/scylladb#21648
2024-11-26 14:26:50 +02:00
Aleksandra Martyniuk
ac6a07117a test: add test to check user_task_ttl 2024-11-26 09:57:42 +01:00
Aleksandra Martyniuk
1712c93261 tasks: api: move make_task method
task_manager::module::make_task method template is used only for
test_task_impl. Move it to api/task_manager_test.cc and modify it
to be test_task_impl-specific.
2024-11-26 09:57:42 +01:00
Aleksandra Martyniuk
1244982071 docs: nodetool: update backup and restore commands docs 2024-11-26 09:57:41 +01:00
Aleksandra Martyniuk
3b86150e88 docs: update task manager docs 2024-11-26 09:57:41 +01:00
Aleksandra Martyniuk
1ade668d79 nodetool: add nodetool tasks user-ttl command 2024-11-26 09:57:23 +01:00
Evgeniy Naydanov
1e9d780e89 test.py: deselect random failures which can cause #21534
Following combinations of error injections and cluster events
can cause #21534.  Disable them for now because they break CI.

Closes scylladb/scylladb#21658
2024-11-26 10:38:15 +02:00
Aleksandra Martyniuk
e703ba08f8 node_ops: use user task ttl for node ops virtual task
Use user task ttl for node ops virtual task. Modify the test accordingly.
2024-11-25 14:21:53 +01:00
Aleksandra Martyniuk
6241d49b64 tasks: use user_task_ttl for tasks started by user 2024-11-25 14:21:53 +01:00
Aleksandra Martyniuk
19a90e3697 api: task_manager: add /task_manager/user_ttl to get and set user task ttl 2024-11-25 14:21:53 +01:00
Aleksandra Martyniuk
292d00463a tasks: add task_manager::task::is_user_task method 2024-11-25 14:21:53 +01:00
Aleksandra Martyniuk
16e204dfdb tasks: keep updateable_value of task_ttl in task manager
Drop task_ttl observer from task manager and use updateable_value.
2024-11-25 14:20:43 +01:00
Aleksandra Martyniuk
1bf073704c db: config: add user_task_ttl_seconds named value
Add user_task_ttl_seconds config option and keep the value in task manager.
In the following patches tasks started by user will be kept in task
manager for user_task_ttl_seconds after they are finished.
2024-11-25 14:16:06 +01:00
Nadav Har'El
cb6c55209a Merge 'locator: token_metadata: replace boost range with std range' from Avi Kivity
Reduce dependency load by standardizing on std::ranges. This is a little
involved since a we use a custom iterator.

Code cleanup; no backport.

Closes scylladb/scylladb#21421

* github.com:scylladb/scylladb:
  locator: token_metadata: switch from boost ranges to std ranges
  locator: token_metadata: make iterator support std::input_iterator concept
  locator: tokens_metadata: move tokens_iterator to namespace scope
2024-11-25 14:58:45 +02:00
Botond Dénes
510e09c648 docs/ddl: document memtable_flush_period_in_ms
This option was implemented by scylladb/scylladb#20999 but it wasn't
documented. Add a description of this option to the create table page.
Note that the option was accepted already before
scylladb/scylladb#20999, but it's value was ignored.

Fixes: scylladb/scylladb#21671

Closes scylladb/scylladb#21673
2024-11-25 13:53:21 +02:00
Nadav Har'El
61e8975930 Merge 'test/boost/view_schema_test: Improve test_view_update_generating_writetime' from Dawid Mędrek
In this PR, we improve various aspects of the test:

* increase obtained information whenever any test case fails,
* split test cases,
* elaborate on the semantics of generating view updates
  and what exactly we check and why.

Backport: not needed, this is an enhancement.

Closes scylladb/scylladb#21579

* github.com:scylladb/scylladb:
  test/boost/view_schema_test: Improve comments in test_view_update_generating_writetime
  test/boost/view_schema_test.cc: Improve checks in test_view_update_generating_writetime
  test/boost/view_schema_test.cc: Split test cases in test_view_update_generating_writetime
2024-11-25 13:46:56 +02:00
Botond Dénes
090ab796dd Merge 'repair: Enable small table optimization for RBNO bootstrap and decommission' from Asias He
The non local strategy system keyspaces usually contain very litte data.
All the tables within them have to be repaired for all the token ranges,
which could be large in clusters with a large number of nodes. In multiple
DC setup, the repair in RBNO is dominated by the network latency. As a
result, it takes a long time to repair those tables even if they are
almost empty.

To speed up the RBNO bootstrap, especially for starting empty clusters,
this patch enables small table optimization for RBNO for system tables.
We could enable it for small user tables as a follow up.

Tests:

1) A 5ms latency is added to simulate cross dc network delay, 256 tokens
per node, 10 nodes:

- Before

  topology_custom dev topology_custom.test_boot_time.1 1287.06s

- After

  topology_custom dev topology_custom.test_boot_time.1 12.48s

The test shows 100X boot time improvement

2) A SCT test to bootstrap 3 DCs, 3 nodes in each DC.

- Before

  Time to bootstrap = 1h23m

- After

  Time to bootstrap = 13m

The test shows 6X bootstrap time improvement

Fixes #19131

New feature.  No backport is needed.

Closes scylladb/scylladb#21207

* github.com:scylladb/scylladb:
  repair: Enable small table optimization for RBNO bootstrap and decommission
  repair: Move flush_rows after repair_meta class
2024-11-25 11:50:55 +02:00
Nadav Har'El
71c671eeaa docs: copy-edit docs/alternator/compatibility.md
I reread the "ScyllaDB Alternator for DynamoDB users" document
(alternator/compatibility.md) and improved various places that I thought
needed improvement.

Two of the more significant changes is moving the not-really-important
"Scan ordering" section much lower in the document and explaining it
better, and improving the "provisioning" section to focus on the available
and missing functionality, and not on minor API details.

Signed-off-by: Nadav Har'El <nyh@scylladb.com>

Closes scylladb/scylladb#21605
2024-11-25 10:02:36 +03:00
Pavel Emelyanov
08f1d6362b Merge 'readers: migrate to std::ranges' from Botond Dénes
With C++23, we have ranges available. Migrate the code in `readers/` to use ranges, to reduce our dependency on boost (and modernize the code a bit).

Improvement, no backport required

Closes scylladb/scylladb#21643

* github.com:scylladb/scylladb:
  readers/mutation_reader: migrate to std::ranges
  readers/multishard: migrate to std::ranges::{push,pop}_heap()
  readers/combined: migrate to std::ranges::subrange<>
  readers/combined: migrate to std::ranges::{push,pop}_heap()
2024-11-25 10:01:13 +03:00
Evgeniy Naydanov
5d254b1fdf test.py: topology_random_failures: increase timeout for Scylla startup
We run topology_random_failures in debug mode only and sometimes Scylla
is too slow in this mode.  Increase timeout for Scylla startup from
30s to 180s to reduce flakiness.

Fixes #21101

Closes scylladb/scylladb#21659
2024-11-25 09:58:46 +03:00
Kefu Chai
7bc0b64f0a replica: correct indentation after coroutinizing make_sstables_available
The previous commit (b3ebbf35e2) transformed `make_sstables_available()`
into a coroutine but left behind incorrectly indented statements
from a nested lambda. This commit restores proper indentation.

Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>

Closes scylladb/scylladb#21660
2024-11-25 09:58:01 +03:00
Asias He
9ace191616 repair: Enable small table optimization for RBNO bootstrap and decommission
The non local strategy system keyspaces usually contain very litte data.
All the tables within them have to be repaired for all the token ranges,
which could be large in clusters with a large number of nodes. In multiple
DC setup, the repair in RBNO is dominated by the network latency. As a
result, it takes a long time to repair those tables even if they are
almost empty.

To speed up the RBNO bootstrap, especially for starting empty clusters,
this patch enables small table optimization for RBNO for system tables.
We could enable it for small user tables as a follow up.

Tests:

1) A 5ms latency is added to simulate cross dc network delay, 256 tokens
per node, 10 nodes:

- Before

  topology_custom dev topology_custom.test_boot_time.1 1287.06s

- After

  topology_custom dev topology_custom.test_boot_time.1 12.48s

The test shows 100X boot time improvement

2) A SCT test to bootstrap 3 DCs, 3 nodes in each DC.

- Before

  Time to bootstrap = 1h23m

- After

  Time to bootstrap = 13m

The test shows 6X bootstrap time improvement

Fixes #19131
2024-11-25 13:46:17 +08:00
Asias He
69531ed8a6 repair: Move flush_rows after repair_meta class
In the next patch, it will call a member function of repair_meta class.

Refs #19131
2024-11-25 13:46:17 +08:00
Dawid Mędrek
926eaf8fe9 test/boost/view_schema_test: Improve comments in test_view_update_generating_writetime
In this commit, we elaborate on the semantics of generating view updates
for each case the test goes through so that the reader less familiar
with the logic has an easier time understanding it.
2024-11-24 22:48:15 +01:00
Dawid Mędrek
2d12acd09a test/boost/view_schema_test.cc: Improve checks in test_view_update_generating_writetime
We modify the checks in the test to obtain full information whenever
a failure happens. Before this change, we compared the number of view
updates one-by-one. As a result, when the first check failed, we didn't
learn anything about the other two. Now we always compare them all at
once.

A negative impact of this commit is that if one of the lambdas throws
an exception, we don't learn ANYTHING. However, a lambda throwing
an exception is a more appalling problem than the comparison failing,
and we DO learn about it in such a situation; so we accept that cost.
2024-11-24 22:48:13 +01:00
Dawid Mędrek
fb62fc6061 test/boost/view_schema_test.cc: Split test cases in test_view_update_generating_writetime
We split some of the test cases so it's clearer what's going on in the
test. Also, if a bug happens in the future, it should be easier to
reason about it when it corresponds to exactly one CQL statement
instead of possibly two.
2024-11-24 22:47:27 +01:00
Andrei Chekun
8bf62a086f test.py: Create central conftest.
Central conftest allows to reduce code duplication and execute all tests
with one pytest command

Closes scylladb/scylladb#21454
2024-11-24 20:09:48 +02:00
Nadav Har'El
7014aec452 Merge 'Alternator measuring RCU and WCU' from Amnon Heiman
Read and Write Consumed Capacity units are an abstract way of measuring Alternator actions. In general, they correspond to the read or write data.

In the long run, the RCU/WCU adds a way of charging an operation and limiting usage.

This series addresses two issues: consume capacity request API and metering.

The Alternator (and DynmoDB) API has an optional parameter allowing users to check the number of units an operation consumes. When a user adds that parameter, the response will contain the number of units used for the operation.

This series adds the consume capacity support to the get_item and put_item, adds a metric to collect the overall RCU and WCU used, and adds a test for the new functionality.

Follow-up PRs will add support for more operations and GSI.

Replaces #19811
Partially implement: #5027

Closes scylladb/scylladb#21543

* github.com:scylladb/scylladb:
  alternator/test_metrics: Add tests for table consumption units
  test_returnconsumedcapacity.py: Add putItem tests
  Alternator: add WCU support
  Add test/alternator/test_returnconsumedcapacity.py
  alternator/executor: Add consume capacity for get_item
  alsternator/stats: Add rcu and wcu metrics to stats
  alternator/executor.hh: white-space cleanup
  Add the consume_capacity helper class
2024-11-24 19:27:03 +02:00
Dawid Mędrek
f913ae571f db/view: Don't generate view updates for unselected columns
The semantics of Scylla's materialized views may vary depending on how their
primary keys correspond to the base table's one. One of the differences is
how we handle writes to columns in the base table that are not selected by
a view:

* Case 1: The view's PK is a permutation of the base table's PK:

  Since the view's primary key cannot be changed in an update, a row in
  the view remains alive as long as the corresponding row in the base table
  is alive.

  The tricky part comes when the base table has columns that are NOT selected
  by the view. CQL3 used to not allow for defining a table that didn't have
  any other columns besides its primary key. Also, when inserting a row into
  a table, it was mandatory to provide at least one value aside from the
  primary key. At some point it changed [1] and the implementation of the
  solution relied on the notion of the row marker.

  Putting the details aside, consider the following scenario:

  (i)   the base table has a primary key consisting of columns
        c_1, ..., c_k, and it has regular columns rc_1, ..., rc_n,
  (ii)  the primary key of an MV defined on that table consists of
        a permutation of c_1, ..., c_k. The MV doesn't select at least
        one of the regular columns of the base table. Without loss of
        generality, let that unselected column be rc_1.
  (iii) the base table has a row R whose only non-null value is the one
        in the regular column rc_1.

  Now, what will R correspond to in the MV? The base table doesn't have a row
  marker, but all of its regular columns in the MV will be NULLs. That's NOT
  allowed.

  To solve that problem, all unselected columns have corresponding virtual
  columns in the MV; the only information they provide is whether there is
  a value in the base table or not. This way, the MV knows if a row is still
  alive or not.

  For that reason, we send view updates to virtual columns in the following
  cases:

  (i)  the value in the column changes from NULL to a value, i.e. it's
       created,
  (ii) the value in the column exists, but its TTL has been updated.

* Case 2: The view's PK has one more column that the base table's one:

  Since the primary key of the view has a regular column C from the base
  table, it is guaranteed that if there's a row in the MV, the corresponding
  row in the base table can remain alive: since C is part of the view's PK,
  it must have a value, so the row in the base table has a value in C too.
  The problem with virtual columns from the previous case doesn't manifest
  in this one. The liveness of the cell in C determines the liveness of
  the whole row in the view.

The semantics gets more complex, but the conclusion is this: in case 1,
virtual columns exist and we may need to generate view updates for them,
while in case 2 virtual columns do NOT exist and so we don't generate
view updates for them.

What changes in this patch is we adjust the code to it. If a view has
a regular column from the base table as part of its primary key, we
no longer emit view updates when we change a column unselected by that
view. It is purely an OPTIMIZATION change.

[1]: https://issues.apache.org/jira/browse/CASSANDRA-4361

Fixes scylladb/scylladb#21652

Closes scylladb/scylladb#21653
2024-11-24 19:01:28 +02:00
Avi Kivity
29497f8c5d Merge 'Automatically compute schema version of system tables' from Tomasz Grabiec
Schema of system tables is defined statically and table_schema_version needs to be explicitly set in code like this:

```
builder.with_version(system_keyspace::generate_schema_version(table_id, version_offset));
```

Whenever schema is changed, the schema version needs to change, otherwise we hit undefined behavior when trying to interpret mutation data created with the old schema using the new schema.

It's not obvious that one needs to do that and developers often forget to do that. There were several instances of mistakes of omission, some caught during review, some not, e.g.: 31ea74b96e.

This patch changes definitions to call the new `schema_builder::with_hash_version()`, which will make the schema builder compute version from schema definition so that changes of the schema will automatically change the version. This way we no longer rely on the developer to remember to bump the version offset.

All nodes should arrive at the same version, which is verified by existing `test_group0_schema_versioning` and a new unit test: `test_system_schema_version_is_stable`.

Closes scylladb/scylladb#21602

* github.com:scylladb/scylladb:
  system_tables: Compute schema version automatically
  schema_builder: Introduce with_hash_version()
  schema: Store raw_view_info in schema::raw_schema
  schema: Remove dead comment
  hashing: Add hasher for unordered_map
  hashing: Add hasher for unique_ptr
  hashing: Add hasher for double

[avi: add missing include <memory> to hashing.hh]
2024-11-24 18:44:32 +02:00
Amnon Heiman
1f688bc670 cql3/query_processor.cc: Add skip_when_empty to metrics
This patch introduces the skip_when_empty flag to all CQL counters that
previously lacked this setting.

The skip_when_empty flag is a metric optimization that prevents
reporting on counters that have never been used. Once a counter has been
used (i.e., it holds a positive value), it will continue to be reported
consistently from that point onward.

Fixes #21046

Signed-off-by: Amnon Heiman <amnon@scylladb.com>

Closes scylladb/scylladb#21565
2024-11-24 17:30:46 +02:00
Gleb Natapov
a1de06d90f migration_manager: move migration manager verbs to the IDL 2024-11-24 11:02:03 +02:00
Gleb Natapov
020e8010e8 storage_proxy: remove unused function 2024-11-24 11:01:39 +02:00