Commit Graph

9 Commits

Author SHA1 Message Date
Piotr Dulikowski
54546e1530 version_generator: check that get_next_version is called on shard 0
The get_next_version function can only be safely called from shard 0,
but this constraint is not enforced in any way. As evidenced in the
previous commit, it is easy to accidentally call it from a non-zero
shard.

Introduce a runtime check to get_next_version which calls
on_fatal_internal_error if it detects that the function was called form
the wrong shard. This will let us detect cross-shard use issues in
runtime.
2024-02-23 13:49:49 +01:00
Benny Halevy
2d20ee7d61 gms: version_generator: define version_type and generation_type strong types
Derived from utils::tagged_integer, using different tags,
the types are incompatible with each other and require explicit
typecasting to- and from- their value type.

Signed-off-by: Benny Halevy <bhalevy@scylladb.com>
2023-04-23 08:47:17 +03:00
Avi Kivity
fcb8d040e8 treewide: use Software Package Data Exchange (SPDX) license identifiers
Instead of lengthy blurbs, switch to single-line, machine-readable
standardized (https://spdx.dev) license identifiers. The Linux kernel
switched long ago, so there is strong precedent.

Three cases are handled: AGPL-only, Apache-only, and dual licensed.
For the latter case, I chose (AGPL-3.0-or-later and Apache-2.0),
reasoning that our changes are extensive enough to apply our license.

The changes we applied mechanically with a script, except to
licenses/README.md.

Closes #9937
2022-01-18 12:15:18 +01:00
Avi Kivity
a55b434a2b treewide: extent copyright statements to present day 2021-06-06 19:18:49 +03:00
Benny Halevy
c295f521b9 gms/version_generator: mark get_next_version noexcept
It is trivially so.

Signed-off-by: Benny Halevy <bhalevy@scylladb.com>
2020-11-01 16:46:18 +02:00
Pekka Enberg
38a54df863 Fix pre-ScyllaDB copyright statements
People keep tripping over the old copyrights and copy-pasting them to
new files. Search and replace "Cloudius Systems" with "ScyllaDB".

Message-Id: <1460013664-25966-1-git-send-email-penberg@scylladb.com>
2016-04-08 08:12:47 +03:00
Avi Kivity
d5cf0fb2b1 Add license notices 2015-09-20 10:43:39 +03:00
Asias He
b18a7bf6c8 gossip: Fix namespace of get_next_version 2015-04-16 14:58:52 +08:00
Nadav Har'El
0513f206d8 gossip: convert VersionGenerator to C++
version_generator is a trivial class which keeps a global "version"
counter, starting with 0 and counting up on a single Cassandra node.
It is used by the gossip protocol to keep a version number for each
piece of state information, so a remote node which gets two pieces of
conflicting gossip can know which is the newer information.

In Cassandra, the counter is an atomic integer. In our implementation,
because there will be just a single gossiper per SMP machine, and the
gossiper will run on a single CPU, it can be a regular integer. But
this doesn't really help performance anyway (the version number changes
rarely, so performance of this code is insignifcant).

Signed-off-by: Nadav Har'El <nyh@cloudius-systems.com>
2015-01-07 13:59:20 +02:00