diff options
author | kjnilsson <knilsson@pivotal.io> | 2021-04-08 17:00:04 +0100 |
---|---|---|
committer | kjnilsson <knilsson@pivotal.io> | 2021-04-08 17:08:20 +0100 |
commit | 200d1b4369cee18181e7b98254eaad643028900f (patch) | |
tree | 78ae11c0d5f719a3d0c476a2e3e47ed5f7192452 | |
parent | 3ecb291d7586e012d4c6e0e99ab9f8738f99cb1a (diff) | |
download | rabbitmq-server-git-200d1b4369cee18181e7b98254eaad643028900f.tar.gz |
Only generate guid for classic queues
As streams and quorum queues do not need this guid and it creates
unnecessary work and disk use.
-rw-r--r-- | deps/rabbit/src/rabbit_basic.erl | 2 | ||||
-rw-r--r-- | deps/rabbit/src/rabbit_classic_queue.erl | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/deps/rabbit/src/rabbit_basic.erl b/deps/rabbit/src/rabbit_basic.erl index cc7c00047e..7ebe58346b 100644 --- a/deps/rabbit/src/rabbit_basic.erl +++ b/deps/rabbit/src/rabbit_basic.erl @@ -136,7 +136,7 @@ message(XName, RoutingKey, #content{properties = Props} = DecodedContent) -> {ok, #basic_message{ exchange_name = XName, content = strip_header(DecodedContent, ?DELETED_HEADER), - id = rabbit_guid:gen(), + % id = rabbit_guid:gen(), is_persistent = is_message_persistent(DecodedContent), routing_keys = [RoutingKey | header_routes(Props#'P_basic'.headers)]}} diff --git a/deps/rabbit/src/rabbit_classic_queue.erl b/deps/rabbit/src/rabbit_classic_queue.erl index b9e0c0a1c6..bc1c1c50d4 100644 --- a/deps/rabbit/src/rabbit_classic_queue.erl +++ b/deps/rabbit/src/rabbit_classic_queue.erl @@ -299,7 +299,8 @@ settlement_action(Type, QRef, MsgSeqs, Acc) -> deliver(Qs0, #delivery{flow = Flow, msg_seq_no = MsgNo, message = #basic_message{exchange_name = _Ex}, - confirm = _Confirm} = Delivery) -> + confirm = _Confirm} = Delivery0) -> + Delivery = maybe_add_basic_message_id(Delivery0), %% TODO: record master and slaves for confirm processing {MPids, SPids, Qs, Actions} = qpids(Qs0, MsgNo), QPids = MPids ++ SPids, @@ -317,7 +318,6 @@ deliver(Qs0, #delivery{flow = Flow, delegate:invoke_no_result(SPids, {gen_server2, cast, [SMsg]}), {Qs, Actions}. - -spec dequeue(NoAck :: boolean(), LimiterPid :: pid(), rabbit_types:ctag(), state()) -> {ok, Count :: non_neg_integer(), rabbit_amqqueue:qmsg(), state()} | @@ -525,3 +525,10 @@ send_rejection(Pid, QName, MsgSeqNo) -> send_queue_event(Pid, QName, Evt) -> gen_server2:cast(Pid, {queue_event, QName, Evt}). + +maybe_add_basic_message_id(#delivery{message = + #basic_message{id = undefined} = M} = D) -> + D#delivery{message = M#basic_message{id = rabbit_guid:gen()}}; +maybe_add_basic_message_id(D) -> + D. + |