Written by Itay Bittan.
Our primary product contains a lot of modules (separate processes) talking together. At the beginning we wrote our own IMP (internal message protocol) written in C. It allowed us to send buffers (C structures) between modules over TCP connection. In addition, we developed a communication module - process that responsible to pass messages between all of the system modules. Here are some of the pitfalls we suffered from:
- Limited queue size - working with TCP sockets queues we find out that we where limited to relatively small size. If you want see your buffer size in terminal, you can take a look at:
/proc/sys/net/ipv4/tcp_rmem(for read)