Commit Graph

302 Commits

Author SHA1 Message Date
Karl Nilsson 3a7a374190 Ra v2.16.0
This version of Ra contains a substantially refactored Ra log
implementation that provides higher throughput and lower
memory use in serveral scenarios.

New features:

* `log_ext` new effect type that instead of immedately reading
entries from the log it will instead provide a read plan for any
entries only located in segments.

* Machine version upgrades can now be be delayed until all
members are confirmed to support the new version.
This will avoid potential consumption pauses during upgrades.
2025-01-27 13:50:38 +00:00
Karl Nilsson 9ed8a3067c Ra 2.15.1
This version contains bug fixes and a change to use async_dist
when a quorum queue sends a message to a remote node (e.g. a consumer
delivery). Using async_dist will reduce chances of messages not
reaching consumers in a timely manner when the system is loaded
and occasionally fills the distribution buffer.
2025-01-22 14:31:13 +00:00
Jean-Sébastien Pédron ae9fbb7bd5
Pin Horus to 0.3.1 temporarily
[Why]
We pin a version of Horus even if we don't use it directly (it is a
dependency of Khepri). But currently, we can't update Khepri while still
needing the fix in Horus 0.3.1.

Horus 0.3.1 works around a crash in `cover` that mostly affects CI for
now.

This pinning will have to go away with the next update of Khepri.
2024-11-29 09:50:08 +01:00
Karl Nilsson 675007a20b Update osiris to v1.8.5
This release contains a bug fix to an issue that very occasionally
could cause consumers on replica nodes not to be notified about
newly committed offsets in a timely manner.
2024-11-22 14:05:56 +00:00
Simon Unge 6cf211a1e1
Dependency thoas updated from 1.0.0 to 1.2.1
(cherry picked from commit 13bf5c005e)

Conflicts:
	rabbitmq-components.mk
(cherry picked from commit 679eaa1913)

Conflicts:
	rabbitmq-components.mk
2024-11-21 20:42:04 -05:00
Jean-Sébastien Pédron 7e59f38ad4
Bump khepri_mnesia_migration from 0.7.0 to 0.7.1
Release notes:
https://github.com/rabbitmq/khepri_mnesia_migration/releases/tag/v0.7.1
2024-11-18 10:35:11 +01:00
Karl Nilsson 5f4715979c Osiris v1.8.4
This osiris release contains a bug fix that would cause an osiris
member to crash during recovery if certain unexpected files
were present in the log directory. (.e.g ".nfsXXXXXXXXXXXX") type
files used by the NFS file system when in use files are deleted.
2024-11-12 10:20:38 +00:00
Michael Klishin 08064abf81
Revert "Bump observer_cli to 1.8.0" 2024-10-21 22:23:38 -04:00
zhongwencool 8f7232b742 Bump observer_cli to 1.8.0 2024-10-22 09:36:07 +08:00
Michael Klishin f922832906
Merge pull request #12479 from rabbitmq/su_aws/update_dependency_recon
4.1: update Recon to 2.5.6
2024-10-08 06:55:00 -04:00
Simon Unge 7702a92865 Dependency Recon updated from 2.5.3 to 2.5.6 2024-10-07 20:23:50 +00:00
Simon Unge 012ba79129 Dependency CSV updated from 3.2.0 to 3.2.1 2024-10-07 18:27:05 +00:00
Michael Davis 51cf642d10
Use 4.0.2 as secondary umbrella 2024-09-26 13:10:49 -04:00
Jean-Sébastien Pédron 52969c8832
Bump khepri_mnesia_migration from 0.6.0 to 0.7.0
Release notes:
https://github.com/rabbitmq/khepri_mnesia_migration/releases/tag/v0.7.0
2024-09-12 22:49:28 +02:00
Jean-Sébastien Pédron 412691d618
Bump Khepri from 0.15.0 to 0.16.0
Release notes:
https://github.com/rabbitmq/khepri/releases/tag/v0.16.0
2024-09-12 22:48:03 +02:00
Jean-Sébastien Pédron be9e5d8029
Bump khepri_mnesia_migration from 0.5.0 to 0.6.0
Release notes:
https://github.com/rabbitmq/khepri_mnesia_migration/releases/tag/v0.6.0
2024-09-05 11:41:54 +02:00
Jean-Sébastien Pédron bc416757e8
Bump Khepri from 0.14.0 to 0.15.0
Release notes:
https://github.com/rabbitmq/khepri/releases/tag/v0.15.0
2024-09-05 11:36:45 +02:00
Jean-Sébastien Pédron b90a606f47
Bump Ra from 2.13.6 to 2.14.0
Release notes:
https://github.com/rabbitmq/ra/releases/tag/v2.14.0
2024-09-05 11:33:56 +02:00
Karl Nilsson baa64102fd Osiris v1.8.3
This release contains fixes around certain recovery failures where
there are either orphaned segment files (that do not have a corresponding
index file) or index files that do not have a corresponding segment
file.
2024-08-21 08:48:58 +01:00
Karl Nilsson c6006fd5ce Ra v2.13.6
This release contains a few fixes and improvements:

* Add ra:key_metrics/2
* ra_server: Add a new last_applied state query
* Stop checkpoint validation when encountering a valid checkpoint
* Kill snapshot process before deleting everything
2024-08-14 14:30:30 +01:00
Michael Klishin a8afe603cf Bump observer_cli to 1.7.5 2024-08-08 01:56:28 -04:00
Michael Klishin b6098de245 Bump Cuttlefish to 3.4.0 2024-08-06 18:24:07 -04:00
Michael Klishin af67afe090 Bump Cuttlefish to 3.3.0 2024-08-05 22:32:21 -04:00
Karl Nilsson 5c0384a328 Ra v2.13.5
This restores the previous pre-init behaviour where an invalid server
will not stop the Ra system from starting. Instead it will log the
errors and continue.

This ensures compatibility with upgraded older systems and systems
where there are historical discrepancies between what is in the
ra_directory and actually on disk.
2024-07-23 15:13:50 +01:00
Michael Klishin f1b52880bb Bump Ra to 2.13.4 2024-07-22 11:00:51 -04:00
Karl Nilsson 42991f7838 Ra v2.13.3
This contains a fix in the ra_directory module to ensure
names can be deleted even when a Ra server has never been started
during the current node lifetime.

Also contains a small tweak to ensure the ra_directory:unregister_name
is called before deleting a Ra data directory which is less likely
to cause a corrupt state that will stop a Ra system from starting.
2024-07-19 18:47:27 +01:00
Karl Nilsson b225fb97ad Ra 2.13.2
This contains an important bugfix to an issue introduced in
2.11.0 where a segment writer may crash during recovery.
2024-07-19 12:40:48 +01:00
Michael Klishin 40903581ef Bump version to 4.0 in a few places 2024-07-19 01:21:30 -04:00
Karl Nilsson c0c6029938 Ra 2.13.1
This release contains improvements to the checkpointing feature
needed for quorum queues v4 and the following fixes:

* Add read to file:open/2 options in ra_lib:sync_file/1
* Emit the new local_query tuple only if query options are set
* bug fixes for checkpoints
2024-07-15 15:08:35 +01:00
Jean-Sébastien Pédron e9da930f59
Bump Khepri from 0.13.0 to 0.14.0
Release notes:
https://github.com/rabbitmq/khepri/releases/tag/v0.14.0

While here, bump khepri_mnesia_migration from 0.4.0 to 0.5.0 as well.
2024-07-10 16:07:43 -04:00
Loïc Hoguin 18f8ee1457
Merge pull request #11549 from rabbitmq/loic-make-cleanups
Various make cleanup/consolidation
2024-06-27 11:42:24 +02:00
Karl Nilsson 8995e00d3f Osiris v1.8.2
* Use the latest method of building the RabbitMQ OCI in actions by @pjk25 in https://github.com/rabbitmq/osiris/pull/159
* Correctly handle case where replica exits in handle_continue. by @kjnilsson in https://github.com/rabbitmq/osiris/pull/160
* Add osiris.app.src file by @lukebakken in https://github.com/rabbitmq/osiris/pull/158
2024-06-26 14:19:16 +01:00
Loïc Hoguin a64d1e67fc
Remove looking_glass
It has largely been superseded by `perf`. It is no longer
generally useful. It can always be added to BUILD_DEPS for
the rare cases it is needed, or installed locally and
pointed to by setting its path to ERL_LIBS.
2024-06-26 09:56:46 +02:00
Michael Klishin a95fcec569 Bazel: depend on Horus 0.2.6 2024-06-20 17:52:27 -04:00
Rin Kuryloski 3465eef2cd Use the latest rules_erlang & rules_elixir 2024-06-20 11:13:02 +02:00
Michal Kuratczyk 27f735f49e
Use emqx/emqtt instead of a fork (#11479)
* Use emqx/emqtt instead of a fork
* Specify SNI in test connections (otherwise OTP26 secure TLS defaults make some tests fail)
2024-06-19 14:03:30 +02:00
Rin Kuryloski 5fc8a8cb9a use the latest rules_erlang
which fixes and issue with escript_archive that was breaking the rabbitmqctl escript
2024-06-18 14:50:35 +02:00
Rin Kuryloski a6b3916a9c use the latest bazel_skylib 2024-06-18 14:50:35 +02:00
Rin Kuryloski 5debebfaf3 Use rules_elixir to build the cli without mix
Certain elixir-native deps are still build with mix, but this can be
corrected later
2024-06-18 14:50:34 +02:00
Michal Kuratczyk 41a4d1711d
OTP27 support (#11366)
* "maybe" is now a keyword
* Bump horus to 0.2.5 and switch to hex
* Get rid of some deprecated callbacks/functions
2024-06-18 07:32:58 +02:00
Karl Nilsson fdaef55213 Ra v2.11.0
This release includes a new machine API `snapshot_installed/2`. This new
API will only be used indirectly through khepri.

This release also includes an performance improvement that reduces the chances
of building a large WAL mailbox backlog when a node is low on scheduling
resources and commands are committed by followers completing writes to disk
before the leader.

There is also a fix for a potential election deadlock.
2024-06-17 15:43:12 +01:00
Rin Kuryloski a6874e39cc
Turn off BuildBuddy integration (#11343)
Builds now execute on the github actions workers, using Google Cloud Storage (GCS) as a cache
2024-06-06 11:37:10 +02:00
Michal Kuratczyk 65cbe5d2f3
Switch to upstream Jose
We had to fork it for Thoas support
but it's been merged a long time ago
https://github.com/potatosalad/erlang-jose/pull/126
2024-06-03 08:51:38 +02:00
GitHub a5955e909a Adopt elixir 1.15.8 2024-05-21 03:05:09 +00:00
GitHub 07cfb29e2b Adopt otp 26.2.5 2024-05-16 15:15:32 +00:00
Karl Nilsson 5123680a17 QQ: default to compressed mem tables and set a wal max entries default
Compressed ETS tables may introduce a small throughput penalty (low single
digit %) but can reduce peak Ra memory use by 30-50%.

Also set a default wal_max_entries value to avoid mem tables growing
too large when using very small message sizes (as more than 1M tiny
messages can easily fit into one WAL file).

Ra 2.10.1 has a type spec fix needed.
2024-05-09 14:24:22 +01:00
Rin Kuryloski 84877c96b2 Use looking_glass 0.2.2 2024-05-07 12:21:22 +02:00
GitHub 8a26e99f7e Adopt otp 25.3.2.12 2024-05-03 03:06:24 +00:00
Karl Nilsson 5b2da75b5e Ra 2.10.0
This Ra release contains a number of fixes and improvements including:

* Much improved resiliency when Ra infrastructure such as the WAL or
segment writer encounters unexpected errors during disk operations.

It also includes the following features that are RabbitMQ does not
yet make use of (but will in the near future).

* Checkpoints: allow non truncating snapshots to be written
to allow faster recovery of quorum queues with long backlogs for example.
* Server recovery strategy configuration: allow dynamically started
ra servers to be optionally restarted.
* New handle_aux/5 callback with a better and safer API
2024-04-29 11:41:57 +01:00
GitHub 1c5b55fba6 Adopt otp 25.3.2.11 2024-04-13 03:04:43 +00:00