Closed tomyouyou closed 4 years ago
It would also be very nice to see what kind of measurable improvements this leads to. Have you observed delegate process congestion in metrics of sorts? What kind of difference does this change make there? And for your real world RabbitMQ client workload throughput?
Collecting some numbers would help both convince our team and for you to prove that the change indeed does what it promises to do.
(PR closed because this branch contains rejected changes and reverts, not because the idea is something we would not consider; specific feedback was submitted above)
%% delegate is an alternative way of doing remote calls. Compared to %% the rpc module, it reduces inter-node communication. For example, %% if a message is routed to 1,000 queues on node A and needs to be %% propagated to nodes B and C, it would be nice to avoid doing 2,000 %% remote casts to queue processes. Above description is copied from delegate.erl.
If a message is sent to only one queue(in most application scenarios), passing through the 'delegate' is meaningless. Otherwise, it increases the delay of the message and the possibility of 'delegate' congestion.
The PR is based on the following considerations: