From 6ed62ec862c3c7b12db5ed8122b453f82a5dbd11 Mon Sep 17 00:00:00 2001 From: Rickard Green Date: Sat, 21 Dec 2024 23:57:36 +0100 Subject: [PATCH] Priority Messages EEP --- eeps/eep-0076-1.png | Bin 0 -> 54537 bytes eeps/eep-0076-2.png | Bin 0 -> 72050 bytes eeps/eep-0076.md | 394 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 394 insertions(+) create mode 100644 eeps/eep-0076-1.png create mode 100644 eeps/eep-0076-2.png create mode 100644 eeps/eep-0076.md diff --git a/eeps/eep-0076-1.png b/eeps/eep-0076-1.png new file mode 100644 index 0000000000000000000000000000000000000000..2780adfbce138b8eb3a82960877d7b302d2a3651 GIT binary patch literal 54537 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 literal 0 HcmV?d00001 diff --git a/eeps/eep-0076-2.png b/eeps/eep-0076-2.png new file mode 100644 index 0000000000000000000000000000000000000000..5be9669f60fbc0357ecbe1f63678f71603e587fa GIT binary patch literal 72050 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 b-v05`fzo|kU!)KX6gWPJ%ZZhW>iPXYY+9%# literal 0 HcmV?d00001 diff --git a/eeps/eep-0076.md b/eeps/eep-0076.md new file mode 100644 index 0000000..cb84b90 --- /dev/null +++ b/eeps/eep-0076.md @@ -0,0 +1,394 @@ + Author: Rickard Green + Status: Draft + Type: Standards Track + Created: 07-Jan-2025 + Post-History: https://erlangforums.com/t/eep-76-priority-messages + Erlang-Version: OTP-28.0 +**** +EEP 76: Priority Messages +---- + +Abstract +======== + +In some scenarios it is important to propagate certain information to a process +quickly without the receiving process having to search the whole message queue +which can become very inefficient if the message queue is long. This EEP +introduces the concept of priority messages to the language which +aim to solve this issue. + +Motivation +========== + +Asynchronous signaling is *the Erlang way* of communicating between processes. +The message signal is the most common type of signal. When a message signal is +received, it is added to the end of the message queue of the receiving process. +As a result of this, the messages in the message queue will be ordered in +reception order. When the receiving process fetch a message from the message +queue, using the `receive` expression, it begins searching at the start of the +message queue. Searching for a matching message is an `O(N)` operation where +`N` equals the amount of messages preceding the matching message. + +![Message Reception][] + +Figure 1. + +This works great in most cases, but in certain scenarios it does not work at +all. At least not without paying a huge performance penalty. + +A Couple of Problematic Scenarios +--------------------------------- + +### Long Message Queue Notification + +As of Erlang/OTP 27.0 it is possible to set up a system monitor monitoring the +message queue lengths of processes in the system. When a message queue length +exceeds a certain limit, you might want to change strategy of handling incoming +messages. In order to do that, you typically need to inform the process with a +long message queue about this. + +Sending it a message informing about the long message queue will not work, +since this message will end up at the end of the long message queue. If the +receiver handles messages one at a time in message queue order, it will take a +long time until the receiver fetch this message. The situation will at this +point very likely have become even worse. + +If the receiver instead periodically tries to search for such messages using +a selective receive, it will periodically have to do a lot of work. This +especially when the message queue is long. Polling the message queue length +using `process_info/2` will in this case be a better workaround. That is, +communicating this information between processes using asynchronous signaling +does not work in this scenario, or at least work very poorly. + +### Prioritized Termination + +Another scenario that have similar issues. A worker process that handles large +jobs is supervised in a supervision tree. It is easy to envision that such a +worker could get a large amount of requests in its message queue. If the +supervisor dies or wants the worker to terminate, the worker will receive an +exit signal from its supervisor. If the worker trap exits, the corresponding +`'EXIT'` message will end up at the end of the message queue. + +If one wants to be able to terminate the worker prior to having to handle all +other requests in the message queue, one either has to stop using trap exit or +periodically do selective receives searching for such `'EXIT'` messages. Not +trapping exits might not be an option and doing periodical selective receives +will be very expensive if the message queue is long. The [pull request 8371][] +aimed to solve this scenario. + +A workaround in this scenario could be to poll the supervisor using the +`is_process_alive/1` BIF in combination with polling of an ETS table where the +supervisor can order it to terminate. That is, also in this scenario using +asynchronous signaling in order to communicate this information between +processes does not work, or at least work very poorly. + +Polling Workarounds +------------------- + +In order to be able to solve scenarios like these without the risk of having to +do a lot of work in the receiving process, one have to resort to passing the +information other ways and let the receiver poll for that information. For +example, write something into an ETS table and let the receiver poll that ETS +table for information. This will prevent potentially very large costs of +having to repeatedly do selective receives, but the polling will not be for +free either. + +In order to be able to handle scenarios like the ones above using asynchronous +signaling, which is *the Erlang way* to communicate between processes, the +following mechanism for sending and receiving priority messages between +processes is proposed. + +Rationale +========= + +By letting certain messages get priority status and upon reception of such +messages insert them before ordinary messages in the message queue we can +handle scenarios like the above with very little overhead. Besides getting a +solution that most likely will have less overhead than any workaround for +communicating information like this, we also get a solution where asynchronous +signaling between processes still can be used. + +The proposed handling of priority messages in the message queue: + +![Priority Message Reception][] + +Figure 2. + +There will be no way for the Erlang code to distinguishing a priority message +from an ordinary message when fetching a message from the message queue. Such +knowledge needs to be part of the message protocol that the process should +adhere to. + +The total message queue length in figure 2 equals `P+M`. The lengths `P` and +`M` will not be visible. The only visible length is the total message queue +length. + +A `receive` expression will select the first message, from the start, in the +message queue that matches, just as before. + +How to Insert Priority Messages in the Message Queue? +----------------------------------------------------- + +By letting priority messages overtake ordinary messages that already exist in +the message queue we get priority messages ordered in reception order among +priority messages followed by ordinary messages ordered in reception order +among ordinary messages. Instead of just overtaking ordinary messages, one +could choose to let a priority message overtake all messages in the message +queue regardless of whether they are priority messages or not, but then +multiple priority messages would accumulate in reverse order. Having these two +sets of messages ordered internally by reception order at least to me feels the +most useful. Just as in the case of ordinary messages we will probably want to +handle priority messages in reception order. + +Note that the reception order of signals is not changed. If a process sends an +ordinary message and then a priority message to a another process, the ordinary +message will be received first and then the priority message will be received. +The only difference is that when the priority message is received, it will be +inserted earlier in the message queue than the ordinary message. That is, +[the signal ordering guarantee][] of the language will still be respected. This +just modifies how the message queue is managed. + +How to Determine What Should be a Priority Message? +--------------------------------------------------- + +By introducing priority messages, the messages in the queue will not +necessarily be in the order the corresponding signals were received. There will +be a lot of code that assumes that the order of messages in the message queue +is in reception order, so it is reasonable that one should need to opt-in in +order to be able to receive priority messages. + +This EEP propose that selected priority marked messages, selected exit +messages, and selected monitor messages should be treated as priority messages. +Perhaps one would want other types of messages to be treated as priority +messages as well, but the set of allowed priority messages can easily be +extended in the future if that should be the case. The following list +describes how the different types of messages will be enabled as priority +messages: + +* *Priority Marked Messages* - A message is marked as a priority message by the + sender by passing the option `priority` in the option list that is passed as + third argument to the `erlang:send/3` BIF. The receiver opts-in for reception + of priority marked messages from a specific sender by calling the + `process_flag/2` BIF like this: + `process_flag({priority_marked_message, SenderPid}, true)`. +* *Exit Messages* - The receiver opts-in for reception of priority exit + messages from a specific process or port by calling the `process_flag/2` BIF + like this: + `process_flag({priority_exit_message, SenderPidOrPort}, true)`. +* *Monitor Messages* - The receiver opts-in for reception of priority monitor + messages due to a specific monitor being triggered by calling the + `process_flag/2` BIF like this: + `process_flag({priority_monitor_message, MonitorRef}, true)`. + The receiver can also opt-in for reception of priority monitor messages by + passing the option `priority` in the option list that is passed as third + argument to the `monitor/3` BIF when creating the monitor. + +The receiver process can at any time disable reception of certain priority +messages by passing `false` as second argument to any of the above listed +`process_flag/2` BIF calls. + +The reason for not having options for accepting all priority marked messages, +all exit messages, or all monitor messages as priority messages is the risk of +introducing bugs when code in other modules are called from the process +accepting priority messages. For example, if a process enables all monitor +messages as priority messages and then makes a call into a module that makes +a `gen_server` call, a `'DOWN'` message due to the call could be selected even +though a reply message due to the call had been delivered before the `'DOWN'` +message. In this case, the call would fail even though it actually succeeded. +The reply message would then also be left as garbage in the message queue +without any code picking it up. + +When a potential priority message is received, the receiver will check if it +has enabled priority message reception for this message. If it has been +enabled, the priority message will overtake all ordinary messages in the +message queue and will be inserted after the last accepted priority message in +the queue. If it has not been enabled, the message will be treated as any +ordinary message and will be added to the end of the message queue. See figure +2. + +The Selective Receive Optimization +---------------------------------- + +Current Erlang runtime system has a selective receive optimization that can +prevent the need to search large parts of the message queue for a matching +message. It is triggered when a reference is created and then matched against +in all clauses of a `receive` expression. Messages present in the message queue +when the reference is created do not have to be inspected, since they cannot +contain the reference. + +When the optimization is triggered a marker is inserted into the message queue +and only messages after the marker are searched. This optimization can make a +huge impact on performance if the process has a long message queue. This +optimization is frequently used in OTP code such as, for example, in a +`gen_server` call. + +The insertion of a priority message in the message queue clashes with the +receive optimization since a reference now can appear earlier in the message +queue than where the receive marker was inserted. One solution to this problem +could be to disable the selective receive optimization on processes that +enables priority messages. The user of priority messages would in that case +have to be very careful not to call into modules that might rely on the +selective receive optimization. This would more or less make it impossible to +safely call modules that you don't have full control over yourself, since it +in the future might be modified in a way so that it relies on the selective +receive optimization taking effect. Therefor I find it unacceptable to disable +the selective receive optimization. The priority message implementation needs +to be able to preserve the selective receive optimization. + +Distributed Erlang +------------------ + +Handling of priority messages should be completely distribution transparent. +You should be able to send and receive priority messages between nodes the +same way as done locally. + +Alternative Solutions Considered +-------------------------------- + +A separate priority message queue per process exposed to the Erlang program +could be an alternative solution. You would need a way similar to this +proposal to choose which messages should be accepted as priority messages. +There would also need to be some new syntax in order to multiplex matching of +messages from the different message queues. This would be a larger change of +the language without providing any extra benefits as I see it. + +There have been suggestions for multiple priority levels similar to the process +priority levels. This could be viewed as an extension to this proposal. The +implementation could relatively easily be extended with multiple priority +levels even though it would complicate the implementation. A `low` priority +level similar to the process priority level `low` which is mixed with the +`normal` process priority level would be very strange to introduce, though. +This since there would not be any easy way of understanding which message will +be fetched from the message queue at a specific message queue state. I think +multiple priority levels should be left for the future if a good enough use +case is presented. + +Backwards Compatibility +======================= + +Since the receiver process needs to opt-in in order to get any special handling +of priority messages, this will be completely backwards compatible. + +Summary +======= + +The proposed solution for priority messages enables users to solve problems +using asynchronous signaling, which is *the Erlang way* of communicating, +where they previously had to resort to workarounds using polling of some sort. +It is likely to reduce the performance impact in most, if not all, scenarios +where one otherwise needs to resort to polling of some sort. Since you need to +opt-in to this new behavior it is completely backwards compatible. The changes +to the language are very small, just "a light touch". On the conceptual level, +it is very easy to understand how the priority messaging works assuming that +you understand how asynchronous signaling in the language work. + +Reference Implementation +======================== + +The reference implementation can be found in [pull request 9269][] of the +[Erlang/OTP repository][]. + +Care has been taken to have as small impact as possible on processes not +utilizing priority messages. Processes not enabling reception of priority +messages will not use any more memory at all due to the priority messages +implementation. + +A few Notes on the Implementation +--------------------------------- + +### The Message Queue + +The message queue may contain messages as well as receive markers utilized by +the selective receive optimization. Receive markers are currently also used +for adjustments that needs to be done to the message queue during certain +operations. That is, the current code traversing the message queue needs to be +prepared to encounter receive markers of different types. + +When the user enables reception of priority messages, a block containing three +receive markers and an area for auxiliary data is allocated. The receive +markers are of new types distinguishable from the already existing receive +markers. The auxiliary data, among other things, contains a red/black search +tree containing information about what type of messages the process accepts as +priority messages. All memory allocated for handling of priority messages is +referred to from this memory block. + +The first and the second receive markers are inserted at the start of the +message queue. The first marker marks the start of priority messages and the +second marks the end of priority messages. The first marker also serves as an +entrance for finding all information about the priority message handling. When +a priority message is accepted it will be inserted just before the end marker. +The third marker is inserted in the message queue when we need to remember a +place in the message queue. This is needed when a priority message is accepted +while we currently are traversing the message queue. + +#### Receive Optimization + +If we have active receive markers for the selective receive optimization in the +message queue and a priority message is accepted, we scan the message for +references. If a reference corresponding to a receive marker is found, we mark +in the receive marker that the reference has been seen in the part of the +message queue containing priority messages. When we enter a `receive` +expression where a receive marker is used and it has been marked in the +receive marker that the reference has been seen in a priority message, we +search the priority messages prior to continuing with the messages after the +receive marker. + +A further optimization that could be done to the receive optimization is to +insert yet another receive marker before the first priority message containing +the reference, but I see that as a premature optimization. A process is not +expected to accumulate a large amount of priority messages. If so, the process +has used priority messages in a way not intended. + +### Priority Messages in Transit + +There exists a number of different types of signals. For each type of signal an +action is taken when the signal is received. Ordinary messages are special +since they are very common and the only action taken upon reception of an +ordinary message is to add it to the end of the message queue. Due to this, +the signal queue for incoming signals is arranged as a skip list where each +non ordinary message signal points to the next non ordinary message signal. +This way we can move a whole batch of ordinary messages into the message queue +at once. + +Priority marked message signals need to be sent as non ordinary message +signals, since they need to have another action taken than the default. There +are other signals that are received as non ordinary message signals, but then +transformed into ordinary messages depending on the state of the receiving +process. An example of such a signal is a message sent using an alias. Upon +reception of such a message the receiver checks if the alias is still active. +If it is, then adds it to the end of the message queue; otherwise, drops the +message. Since a message sent using an alias is very similar to a priority +marked message, the implementation for alias messages has been generalized to +handle *alternate action messages*. Both a priority marked message and a +message sent using an alias are just messages with an alternate action to take +upon reception than the default, so both of them will use the alternate action +message implementation. + +[Message Reception]: eep-0076-1.png + "Message Reception" + +[Priority Message Reception]: eep-0076-2.png + "Priority Message Reception" + +[the signal ordering guarantee]: https://www.erlang.org/doc/system/ref_man_processes.html#delivery-of-signals + +[pull request 8371]: https://github.com/erlang/otp/pull/8371 + +[pull request 9269]: https://github.com/erlang/otp/pull/9269 + +[Erlang/OTP repository]: https://github.com/erlang/otp + +Copyright +========= + +This document is placed in the public domain or under the CC0-1.0-Universal +license, whichever is more permissive. + +[EmacsVar]: <> "Local Variables:" +[EmacsVar]: <> "mode: indented-text" +[EmacsVar]: <> "indent-tabs-mode: nil" +[EmacsVar]: <> "sentence-end-double-space: t" +[EmacsVar]: <> "fill-column: 70" +[EmacsVar]: <> "coding: utf-8" +[EmacsVar]: <> "End:" +[VimVar]: <> " vim: set fileencoding=utf-8 expandtab shiftwidth=4 softtabstop=4: "