Much of modern software uses domain sockets for same-machine IPC. Such as PostGres, HyPer etc.
But how good are Domain sockets really?
Compare:
- Domain Sockets
- TCP Sockets
- Shared Memory
- FIFOs
Shared memory is the way to go, so how do we use it?
Overwrite syscalls and redirect reads and writes to custom shared memory channels. LD_PRELOAD, no re-compilation!
Two channels, circular read/write buffers
escalation levels
PostGres, Hyper
select/poll, keys, multi-process synchronization
RDMA (Alex)