Skip to content

Revert #7672 #7684

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions deps/rabbit/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,6 @@ _APP_ENV = """[
]},
{halt_on_upgrade_failure, true},
{ssl_apps, [asn1, crypto, public_key, ssl]},
%% classic queue storage implementation version
{classic_queue_default_version, 2},
%% see rabbitmq-server#114
{mirroring_flow_control, true},
{mirroring_sync_batch_size, 4096},
Expand Down
2 changes: 0 additions & 2 deletions deps/rabbit/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,6 @@ define PROJECT_ENV
]},
{halt_on_upgrade_failure, true},
{ssl_apps, [asn1, crypto, public_key, ssl]},
%% classic queue storage implementation version
{classic_queue_default_version, 2},
%% see rabbitmq-server#114
{mirroring_flow_control, true},
{mirroring_sync_batch_size, 4096},
Expand Down
2 changes: 1 addition & 1 deletion deps/rabbit/priv/schema/rabbit.schema
Original file line number Diff line number Diff line change
Expand Up @@ -2408,7 +2408,7 @@ end}.

{translation, "rabbit.classic_queue_default_version",
fun(Conf) ->
case cuttlefish:conf_get("classic_queue.default_version", Conf, 2) of
case cuttlefish:conf_get("classic_queue.default_version", Conf, 1) of
1 -> 1;
2 -> 2;
_ -> cuttlefish:unset()
Expand Down
8 changes: 5 additions & 3 deletions deps/rabbit/src/rabbit_amqqueue_process.erl
Original file line number Diff line number Diff line change
Expand Up @@ -470,10 +470,12 @@ init_queue_mode(Mode, State = #q {backing_queue = BQ,

init_queue_version(Version0, State = #q {backing_queue = BQ,
backing_queue_state = BQS}) ->
%% When the version is undefined we use the default version 2 starting with
%% RabbitMQ 3.12.0.
%% When the version is undefined we use the default version 1.
%% We want to BQ:set_queue_version in all cases because a v2
%% policy might have been deleted, for example, and we want
%% the queue to go back to v1.
Version = case Version0 of
undefined -> rabbit_misc:get_env(rabbit, classic_queue_default_version, 2);
undefined -> rabbit_misc:get_env(rabbit, classic_queue_default_version, 1);
_ -> Version0
end,
BQS1 = BQ:set_queue_version(Version, BQS),
Expand Down
3 changes: 1 addition & 2 deletions deps/rabbit/src/rabbit_variable_queue.erl
Original file line number Diff line number Diff line change
Expand Up @@ -492,9 +492,8 @@ process_recovery_terms(Terms) ->

queue_version(Q) ->
Resolve = fun(_, ArgVal) -> ArgVal end,
%% If queue-version is undefined, we assume v2 starting with RabbitMQ 3.12.0.
case rabbit_queue_type_util:args_policy_lookup(<<"queue-version">>, Resolve, Q) of
undefined -> rabbit_misc:get_env(rabbit, classic_queue_default_version, 2);
undefined -> rabbit_misc:get_env(rabbit, classic_queue_default_version, 1);
Vsn when is_integer(Vsn) -> Vsn;
Vsn -> binary_to_integer(Vsn)
end.
Expand Down
10 changes: 1 addition & 9 deletions release-notes/3.12.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,17 +109,9 @@ in the `3.11.x` release series.

GitHub issue: [#7553](https://github.com/rabbitmq/rabbitmq-server/pull/7553#issuecomment-1463660454)

* Reduced memory footprint, improved memory use predictability and throughput of classic queues (version 2, or CQv2).
* Reduced memory footprint, improved memory use predictability and throughput of classic queues.
This particularly benefits classic queues with longer backlogs.

Classic queue v2 (CQv2) storage implementation can be enabled for all classic queues
using `rabbitmq.conf`:

``` ini
# uses CQv2 for all classic queues by default
classic_queue.default_version = 2
```

GitHub issues: [#4522](https://github.com/rabbitmq/rabbitmq-server/pull/4522), [#7516](https://github.com/rabbitmq/rabbitmq-server/pull/7516)

* Reduced peak memory footprint of quorum queues.
Expand Down