### Description

Off-heap messages is an Erlang 19 feature:

http://erlang.org/doc/man/erlang.html#process_flag_message_queue_data

It is adviseable to use that setting for processes which expect to receive a
lot of messages. CouchDB sets it for couch_server, couch_log_server and bunch
of others as well.

In some cases the off-heap behavior could alter the timing of message receives
and expose subtle bugs that have been lurking in the code for years. Or could
slightly reduce performance, so a safety measure allow disabling it.

### How to test

```
> config:set("couchdb","enable_off_heap_messages", "false").

> Pid = whereis(couch_server).
<0.311.0>

> exit(Pid, kill).

> erlang:process_info(whereis(couch_server), message_queue_data).
{message_queue_data,on_heap}

```

### Related

 https://github.com/apache/couchdb/pull/1392




[ Full content available at: https://github.com/apache/couchdb/pull/1597 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to