<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/diameter/src/base, branch OTP-19.3.6.6</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Merge branch 'anders/diameter/capx_strictness/OTP-14257' into maint</title>
<updated>2017-03-08T13:06:38+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2017-03-08T13:06:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=b232c720a69bd12717ef880f5ee8ac696c4514f0'/>
<id>b232c720a69bd12717ef880f5ee8ac696c4514f0</id>
<content type='text'>
* anders/diameter/capx_strictness/OTP-14257:
  Add transport_opt() capx_strictness
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* anders/diameter/capx_strictness/OTP-14257:
  Add transport_opt() capx_strictness
</pre>
</div>
</content>
</entry>
<entry>
<title>Add transport_opt() capx_strictness</title>
<updated>2017-03-08T06:34:06+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2017-03-06T18:37:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=e4f28f3b45b58604f2022b321185e164441f9cd7'/>
<id>e4f28f3b45b58604f2022b321185e164441f9cd7</id>
<content type='text'>
To allow the Peer State Machine requirement that only the expected
capabilities exchange message be received in the relevant state to be
relaxed. If {capx_strictness, false} is configured then anything bu the
expected CER/CEA is ignored.

This is non-standard behaviour, and thusfar undocumented. Use at your
own risk.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To allow the Peer State Machine requirement that only the expected
capabilities exchange message be received in the relevant state to be
relaxed. If {capx_strictness, false} is configured then anything bu the
expected CER/CEA is ignored.

This is non-standard behaviour, and thusfar undocumented. Use at your
own risk.
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid sending large terms between nodes unnecessarily</title>
<updated>2017-03-07T17:35:09+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2017-03-03T13:25:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=fb14eac92b8bc08293443196ed5ab3896d8fb7a1'/>
<id>fb14eac92b8bc08293443196ed5ab3896d8fb7a1</id>
<content type='text'>
When relaying outgoing requests through transport on a remote node,
terms that were stripped when sending to the transport process weren't
stripped when spawning a process on the remote node.

Also, don't save the request to the process dictionary in a process that
just relays an answer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When relaying outgoing requests through transport on a remote node,
terms that were stripped when sending to the transport process weren't
stripped when spawning a process on the remote node.

Also, don't save the request to the process dictionary in a process that
just relays an answer.
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't use request table for answer routing</title>
<updated>2017-03-07T17:35:09+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2017-03-02T11:57:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=a4da06a56f778b7ac44c33a4fea38d1f60cac28d'/>
<id>a4da06a56f778b7ac44c33a4fea38d1f60cac28d</id>
<content type='text'>
The table has existed forever, to route incoming answers to a waiting
request process: each outgoing request writes to the table, and each
incoming answer reads. This has been seen to suffer from lock contention
at high load however, so this commit moves the routing into the
diameter_peer_fsm processes that are diameter's conduit to transport
processes. The request table is still used for failover detection, but
entries are only written when a watchdog state transitions leaves or
enters state OKAY.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The table has existed forever, to route incoming answers to a waiting
request process: each outgoing request writes to the table, and each
incoming answer reads. This has been seen to suffer from lock contention
at high load however, so this commit moves the routing into the
diameter_peer_fsm processes that are diameter's conduit to transport
processes. The request table is still used for failover detection, but
entries are only written when a watchdog state transitions leaves or
enters state OKAY.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix/redo failover optimization</title>
<updated>2017-02-24T09:45:45+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2017-02-06T14:49:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=a5bc8a5911613ec9ddfef9984ee59a24110c8b2b'/>
<id>a5bc8a5911613ec9ddfef9984ee59a24110c8b2b</id>
<content type='text'>
Commit 9a878743 addressed inefficiency at failover, but introduced
inefficiency in the sending of outgoing requests in so doing: each
outgoing request added an request table entry keyed on a transport pid,
then looked for a specific element with this key, and then (later)
removed the inserted element. Since the request table is a bag, this
results in linear searches over a potentially long list of element
keyed on the same pid. The higher the rate of outgoing calls, the more
costly it becomes.

Instead of writing entries to the request table, the peer_up/down calls
to diameter_traffic that mirror transitions to and from the OKAY state
in the RFC 3539 watchdog state machine now result in a process for
request processes to monitor in order to detect failover.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit 9a878743 addressed inefficiency at failover, but introduced
inefficiency in the sending of outgoing requests in so doing: each
outgoing request added an request table entry keyed on a transport pid,
then looked for a specific element with this key, and then (later)
removed the inserted element. Since the request table is a bag, this
results in linear searches over a potentially long list of element
keyed on the same pid. The higher the rate of outgoing calls, the more
costly it becomes.

Instead of writing entries to the request table, the peer_up/down calls
to diameter_traffic that mirror transitions to and from the OKAY state
in the RFC 3539 watchdog state machine now result in a process for
request processes to monitor in order to detect failover.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'anders/diameter/19.1/OTP-13838' into maint</title>
<updated>2016-09-12T20:31:33+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-09-12T20:31:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=58cc6bb63216d66975b8b9a895c0596925a8571d'/>
<id>58cc6bb63216d66975b8b9a895c0596925a8571d</id>
<content type='text'>
* anders/diameter/19.1/OTP-13838:
  vsn -&gt; 1.12.1
  Update appup for 19.1
  Fix xmllint errors in documentation
  Remove documentation overkill
  Don't run traffic tests in parallel when {string_decode, true}
  Remove copyright from generated dictionary modules
  Fix dictionary function typo
  Fix dictionary typo in relay example
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* anders/diameter/19.1/OTP-13838:
  vsn -&gt; 1.12.1
  Update appup for 19.1
  Fix xmllint errors in documentation
  Remove documentation overkill
  Don't run traffic tests in parallel when {string_decode, true}
  Remove copyright from generated dictionary modules
  Fix dictionary function typo
  Fix dictionary typo in relay example
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'anders/diameter/failover/OTP-13412' into maint</title>
<updated>2016-09-12T20:31:26+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-09-12T20:31:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=5620f7b8e8444bbaf5ad7ba17b842aae2a8f5d9d'/>
<id>5620f7b8e8444bbaf5ad7ba17b842aae2a8f5d9d</id>
<content type='text'>
* anders/diameter/failover/OTP-13412:
  Make peer failover more efficient
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* anders/diameter/failover/OTP-13412:
  Make peer failover more efficient
</pre>
</div>
</content>
</entry>
<entry>
<title>Let unfortunate min_heap_size setting be disabled</title>
<updated>2016-09-11T12:45:01+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-09-07T21:05:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=392a0a77a9c4fc4c9bdca1c2e6599ce34f07c93b'/>
<id>392a0a77a9c4fc4c9bdca1c2e6599ce34f07c93b</id>
<content type='text'>
The setting in all diameter server processes has existed since the
beginning of time. Whether it's actually useful is questionable, but it
does lead to increased memory usage, especially if there are many peer
connections whose processes wouldn't otherwise be large. Let the setting
be disabled with -diameter min_heap_size false. (Or any value that isn't
a non-negative integer.)

The diameter application itself only calls
diameter_lib:spawn_opts(server, []), but let other arguments remain for
backwards compatibility, since diameter_lib:spawn_opts/2 has been abused
from outside of diameter.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The setting in all diameter server processes has existed since the
beginning of time. Whether it's actually useful is questionable, but it
does lead to increased memory usage, especially if there are many peer
connections whose processes wouldn't otherwise be large. Let the setting
be disabled with -diameter min_heap_size false. (Or any value that isn't
a non-negative integer.)

The diameter application itself only calls
diameter_lib:spawn_opts(server, []), but let other arguments remain for
backwards compatibility, since diameter_lib:spawn_opts/2 has been abused
from outside of diameter.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix dictionary function typo</title>
<updated>2016-08-25T22:21:01+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-08-25T15:51:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=d41cfa87e43725953b4eb3efca31413708b71ed4'/>
<id>d41cfa87e43725953b4eb3efca31413708b71ed4</id>
<content type='text'>
It's '#get-'/2, not 'get-'/2. Only failed if the dictionary in question
defined no Failed-AVP, which is rarely the case in practice.

Thanks to Ferenc Holzhauser.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's '#get-'/2, not 'get-'/2. Only failed if the dictionary in question
defined no Failed-AVP, which is rarely the case in practice.

Thanks to Ferenc Holzhauser.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'anders/diameter/rand/OTP-13664'</title>
<updated>2016-06-12T07:09:59+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-06-12T07:09:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c2861de76ca39217a0cf4fc284f8eeaf3f7d2477'/>
<id>c2861de76ca39217a0cf4fc284f8eeaf3f7d2477</id>
<content type='text'>
* anders/diameter/rand/OTP-13664:
  Use rand(3) instead of random(3)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* anders/diameter/rand/OTP-13664:
  Use rand(3) instead of random(3)
</pre>
</div>
</content>
</entry>
</feed>
