<div dir="ltr"><div>Our team is currently using the process dictionary to store meta information for long running processes, and would like to hear from folks familiar with beam internals whether this is a recommended practice.</div><div><br></div><div>Essentially we add meta information about the current request in a process dictionary of every process related to handling of this request. This information could be:<br></div><div><div>- current file</div><div>- user name of initiator of the request</div><div>- http query parameters</div><div>- type of a process (indexer | compactor | http_handler)</div></div><div><br></div><div>For example, when we detect performance problems, we run a function that returns the Pids of (say) top memory using processes. We use the meta info stored in process dictionaries to determine which documents are using excessive memory so we can take corrective action.</div><div><br></div><div>In practice, we are unable to use normal OTP messaging because in many cases, the high memory using processes have also grown huge message queues, and so would be unresponsive to any additional messages.<br></div><div><br></div><div>Given our existing constraints, is this a reasonable use of the process dictionary?</div><div><br></div><div>Thanks,</div><div>Jay</div></div>