summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Nilsson <kjnilsson@gmail.com>2021-11-18 14:53:07 +0000
committerKarl Nilsson <kjnilsson@gmail.com>2021-11-18 14:53:07 +0000
commitc80a080cf19f297006b8ba536a6cd4a5f9a50e7a (patch)
treeea31147e2b50fd07dcc7873193b9045393670baf
parentb47abf9f4c715efdb6e9814c9f665f649d89cfc7 (diff)
downloadrabbitmq-server-git-simplify-qq-resend-protocol.tar.gz
QQv2: sketch idea for more compact commandssimplify-qq-resend-protocol
That will use less disk space.
-rw-r--r--deps/rabbit/src/rabbit_fifo.erl16
1 files changed, 16 insertions, 0 deletions
diff --git a/deps/rabbit/src/rabbit_fifo.erl b/deps/rabbit/src/rabbit_fifo.erl
index a05f4e0b0f..73c3362621 100644
--- a/deps/rabbit/src/rabbit_fifo.erl
+++ b/deps/rabbit/src/rabbit_fifo.erl
@@ -90,6 +90,22 @@
-record(update_config, {config :: config()}).
-record(garbage_collection, {}).
+-define(ENQUEUE, 1).
+-define(SETTLE, 4).
+-define(RETURN, 5).
+-define(DISCARD, 6).
+-define(CREDIT, 7).
+
+-type enqueuer_id() :: non_neg_integer(). %% integer that maps to a pid passwed during register_enqeuuer
+-type consumer_id2() :: non_neg_integer().%% integer that maps to a consumer_id()
+
+-type enqueue() :: {?ENQUEUE, enqueuer_id(), option(msg_seqno()), raw_msg()}.
+-type settle() :: {?SETTLE, consumer_id2(), [msg_id()]}.
+-type return() :: {?RETURN, consumer_id2(), [msg_id()]}.
+-type discard() :: {?DISCARD, consumer_id2(), [msg_id()]}.
+-type credit() :: {?CREDIT, consumer_id2(), Credit :: non_neg_integer(),
+ DeliveryCount :: non_neg_integer(), Drain :: boolean()}.
+
-opaque protocol() ::
#enqueue{} |
#register_enqueuer{} |