Description
I see no reason why we should copy data that's being passed between two processes on the same (local) node. So I've started experimenting with skipping some of the overhead of NT by sending directly via the node controller using sendCtrlMsg
instead.
Initial commit is here. With this branch installed locally, the distributed-process-platform tests still pass, but I have seen the test run bomb out with 130 exit code once, which is a bit worrying.
Following on from that commit, I'd like to see if we can skip the serialization step and just enqueue the data directly instead of creating a new Message
in which to pass it. This shouldn't be too hard, but the matching operations will still need the type fingerprint in order to handle selective receive so I might create a type class that encapsulates the fingerprint and access to the payload, which we can use in the matching code. We can then have an instance for Message
that calls decode and another for Serializable a
that just returns the enclosed data directly.