Alex Balashov abalashov@evaristesys.com writes:
On Wed, Apr 08, 2020 at 04:54:48PM +0100, David Villasmil wrote:
I have a question on this, since 180 arrived before the 200, shouldn’t it go out before? I.e.: FIFO? Or is this not happening because there are multiple processes and one may take the 180 and the other the 200 and they are processes independently?
I guess setting the childs to only 1 should prove this theory.
In theory, it should all be FIFO, of course. In practice, there are stochastic aspects to OS process scheduling and I/O scheduling which make the ingress and egress of messages arriving at Kamailio simultaneously or substantially simultaneously somewhat indeterminate.
I don't see this as being about the nature of parallel processing.
Either the protocol specifications have ordering rules (in which case an implementation which does not follow those is defective), or they do not have ordering rules (in which case an implementation that is troubled by lack of ordering is defective).
There is a messy middle ground of course, where significant misordering is inefficient. An example is the transport of IP packets. TCP can deal with misordered packets, but this ends up not so efficient. So there is a notion that a system that causes frequent or gross misordering is not as good as one that doesn't. Compare to ATM, where cells may not be reordered at all -- this is a major burden on implementers.
I am curious which situation we are discussing here. Given that SIP can use UDP, which has no ordering guarantees, it would be surprising if an endpoint can expect ordering of any messages.