summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Basic benchmark for topic routingkhepri-benchmarkMichal Kuratczyk2023-02-131-1/+84
|
* BugfixesDiana Parra Corbacho2023-02-082-1/+4
|
* Khepri: Use the queue projection in rabbit_db_queueMichael Davis2023-02-071-37/+29
| | | | | | | The `rabbit_khepri_queue` projection ETS table can be used in the read-only functions in `rabbit_db_queue` when Khepri is enabled. This fixes performance issues when looking up queues for message delivery with Khepri enabled.
* Update rules_erlang to 3.9.4Diana Parra Corbacho2023-02-072-8/+2
|
* Remove unused includeDiana Parra Corbacho2023-02-071-2/+0
|
* BugfixesDiana Parra Corbacho2023-02-076-75/+16
|
* Temporarily use a pre-release rules_erlangRin Kuryloski2023-02-072-1/+7
| | | | to fix khepri compilation
* bazel: Add khepri dependencyMichael Davis2023-02-064-15/+410
| | | | | | | BUILD.khepri was generated with this command: bazel run gazelle -- update-repos --verbose \ --build_files_dir=bazel hex.pm/khepri@0.6.0
* BugfixesDiana Parra Corbacho2023-02-062-2/+12
|
* projections: Match on node props in extended project funMichael Davis2023-02-061-17/+14
| | | | | | | | | One of the Khepri revisions on the projections branch used `undefined` in extended projection functions to indicate that there was no old/new tree node. This was eventually changed before being merged so that the old and new tree node properties (`khepri:node_props()`) are always provided and an empty map is passed instead if there is no tree node in the old/new tree.
* projections: Refactor rabbit_khepri_bindings table layoutMichael Davis2023-02-062-17/+21
| | | | | | | | | | | | | | The old shape used the source exchange as the key in a bag table. This made it cheaper to list all bindings for an exchange but it caused a bad regression for inserting many bindings, for example in a definition import. If all bindings are for the same exchange, inserting N bindings has exponential time complexity when using a bag compared to the roughly linear time complexity using a set. This reflects the shape of the `rabbit_route` table from mnesia: the whole `#binding{}` record is the key of the table and the table is a set. With this change, the time taken to import definitions roughly matches mnesia.
* Khepri: use projectionsDiana Parra Corbacho2023-02-068-140/+200
| | | | | Co-authored-by: Michael Davis <mcarsondavis@gmail.com> Co-authored-by: Diana Parra Corbacho <dparracorbac@vmware.com>
* Khepri: The One CommitDiana Parra Corbacho2023-02-06128-1096/+10088
| | | | | Co-authored-by: Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> Co-authored-by: Diana Parra Corbacho <dparracorbac@vmware.com>
* Merge pull request #6821 from rabbitmq/rabbit-db-modulesJean-Sébastien Pédron2023-02-0288-2347/+7534
|\ | | | | Move missing Mnesia-specific code to rabbit_db_* modules
| * Unit test rabbit_db_* modules, spec and API updatesDiana Parra Corbacho2023-02-0246-919/+3360
| |
| * Adapt plugins to new exchange and exchange decorator APIDiana Parra Corbacho2023-01-315-24/+21
| |
| * Move maintenance mode Mnesia-specific code to rabbit_db_maintenance moduleDiana Parra Corbacho2023-01-312-66/+157
| |
| * Move mnesia queries from rabbit_misc to rabbit_mnesiaDiana Parra Corbacho2023-01-3128-242/+217
| |
| * Move consistent hash exchange Mnesia-specific code to rabbit_db_ch_exchange ↵Diana Parra Corbacho2023-01-312-154/+234
| | | | | | | | module
| * Move jms topic exchange Mnesia-specific code to rabbit_db_* modulesDiana Parra Corbacho2023-01-313-91/+162
| |
| * Move recent history exchange Mnesia-specific code to rabbit_db_* modulesDiana Parra Corbacho2023-01-312-44/+124
| |
| * Move rabbit_exchange_type to rabbitDiana Parra Corbacho2023-01-311-0/+0
| |
| * Adapt federation and shovel to changes in exchange behaviour and ↵Diana Parra Corbacho2023-01-316-17/+6
| | | | | | | | mirrored_supervisor
| * Move mirrored supervisor Mnesia-specific code to rabbit_db_* modulesDiana Parra Corbacho2023-01-314-273/+429
| |
| * Move queue/exchange/binding/policy Mnesia-specific code to rabbit_db_* modulesDiana Parra Corbacho2023-01-3129-1167/+3071
| |
| * Move missing Mnesia-specific code to rabbit_db_topic_exchange moduleDiana Parra Corbacho2023-01-314-205/+608
| |
* | Merge pull request #7156 from ↵Jean-Sébastien Pédron2023-02-023-10/+36
|\ \ | | | | | | | | | | | | rabbitmq/fix-default-feature-flags-filtering-in-ff-controller Feature flags: Fix experimental feature flags inventory
| * | rabbit_feature_flags: Fix spec and doc of `get_stability/1'Jean-Sébastien Pédron2023-02-021-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | The return value was incorrectly specified and documented: it can return `undefined` when a feature flag name is passed and that feature flag is unknown. So far, this function is always called with a feature flag properties map, in which case it doesn't return `undefined`.
| * | rabbit_feature_flags: Fix logging of the list of feature flagsJean-Sébastien Pédron2023-02-021-1/+1
| | | | | | | | | | | | | | | "~~" was ok when the final string was a format string, but it's not anymore. We need a simple "~".
| * | rabbit_feature_flags: Fix experimental feature flags inventoryJean-Sébastien Pédron2023-02-021-5/+25
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we collect feature flag properties from all nodes, we start with an empty cluster inventory (a common Erlang recursion pattern). This means that all feature flags are unknown at first. In `merge_feature_flags()`, we must compute a global stability level for each feature flag, in case all nodes are not on the same page (like one nodes considers a feature flag experimental, but another one marks it as stable). That's why we rank stability level: required > stable > experimental. This ranking had one issue: `rabbit_feature_flags:get_stability/1` defaults to `stable` if a feature flag has not explicit stability set. Therefore, with our empty starting inventory, the starting stability would be `stable`. And it would superceed an experimental feature flag stability level, even though all nodes agree on that. Now, if a feature flag is missing from our inventory being collected, we consider its stability level to be experimental. This is different from a known feature flag with no explicit stability level. This way, we are sure that feature flags marked as experimental everywhere will be considered experimental globally.
* | Merge pull request #7141 from rabbitmq/send-drained-bug-fixMichael Klishin2023-02-017-60/+137
|\ \ | | | | | | Fix channel crash when draining AMQP 1.0 credits from classic queue
| * | Fix channel crash when draining AMQP 1.0 credits from classic queueKarl Nilsson2023-02-017-60/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Classic queues used a different format for the `{send_drained, _}` queue type action which was missed originally. This change handles both formats in the channel for backwards compatibility as well as changes classic queues to conform to the same format when sending the queue event. Whilst adding tests for this in the amqp10 plugin another issue around the amqp10_client and filters was discovered and this commit also includes improvements in this area. Such as more leninet support of source filters.
* | | Merge pull request #7149 from rabbitmq/rin/rabbitmq_cli-dialyzerMichael Klishin2023-02-011-11/+6
|\ \ \ | | | | | | | | Forward-port dialyzer related rabbitmq_cli fixes from #7122
| * | | Forward-port dialyzer related rabbitmq_cli fixes from #7122Rin Kuryloski2023-02-011-11/+6
| | | |
* | | | Merge pull request #7144 from rabbitmq/fix-7142Michael Klishin2023-02-018-8/+195
|\ \ \ \ | |/ / / |/| | | Fix issue #7142
| * | | Test when there are zero limitsMarcial Rosales2023-02-015-7/+33
| | | |
| * | | Test display limits when there are noneMarcial Rosales2023-02-016-1/+162
| | | |
| * | | Fix issue #7142Marcial Rosales2023-02-011-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The issue is that users retrieved with the intention to list in the limits view are not paged hence they are not wrapped around a paging struct where users would be under items attribute. Pending selenium tests
* | | | Merge pull request #7143 from rabbitmq/bazel-rabbitmqctl-helper-shell-quotingAlexey Lebedeff2023-02-011-1/+1
|\ \ \ \ | | | | | | | | | | Fix shell quoting in bazel rabbitmqctl helper
| * | | | Fix shell quoting in bazel rabbitmqctl helperAlexey Lebedeff2023-02-011-1/+1
|/ / / / | | | | | | | | | | | | E.g. any complex `rabbitmqctl eval` was not possible via `bazel run rabbitmqctl`.
* | | | Merge pull request #7115 from rabbitmq/cq-perf-regression-fixMichal Kuratczyk2023-02-012-3/+3
|\ \ \ \ | |/ / / |/| | | CQ: Fix performance regression after moving to v2 sets
| * | | CQ: Fix performance regression after moving to v2 setsLoïc Hoguin2023-01-312-3/+3
| | |/ | |/| | | | | | | | | | sets:from_list also must be told to use v2 otherwise it will use v1.
* | | Merge pull request #7135 from rabbitmq/mk-report-total-core-count-cluster-statusMichael Klishin2023-02-011-1/+42
|\ \ \ | |_|/ |/| | List CPU core count in 'rabbitmq-diagnostics cluster_status'
| * | mix formatMichael Klishin2023-01-311-2/+5
| | |
| * | List CPU core count in 'rabbitmq-diagnostics cluster_status'Michael Klishin2023-01-311-1/+39
| | | | | | | | | | | | | | | Both to simplify troubleshooting in some cases and to make it easier to spot licensing irregularities.
* | | Merge pull request #7118 from rabbitmq/fix-stream-delivery-v2-command-enablementArnaud Cogoluègnes2023-02-011-1/+1
|\ \ \ | | | | | | | | Activate stream delivery v2 correctly
| * | | Activate stream delivery v2 correctlyArnaud Cogoluègnes2023-01-311-1/+1
| | | | | | | | | | | | | | | | | | | | As soon as v2 is supported, whatever the min supported version is.
* | | | Merge pull request #7133 from rabbitmq/mk-cli-dialyzer-fixMichael Klishin2023-01-311-0/+5
|\ \ \ \ | |_|/ / |/| | |
| * | | Fix one more issue reported by CLI tools DialyzerMichael Klishin2023-01-311-0/+5
|/ / / | | | | | | | | | (cherry picked from commit 5d8ba2f32ae012d883cc61d3e15593b67cf89e37)
* | | Merge pull request #7128 from rabbitmq/mk-3.10.17-release-notesMichael Klishin2023-01-311-0/+45
|\ \ \ | | | | | | | | 3.10.17 release notes