v3.3.3
This release contains several fixes to improve throughput and performance of ZeroMQ RPC server:
- Fixed a bug where the local (in-memory) queue was incorrectly being treated as LIFO instead of FIFO. This significantly impacted throughput under heavy load.
- Use
concat
instead of+
when writing frames.+
makes a new copy of the array and is up to 100x slower on large message bodies. - Process responses and the local queue before processing new requests. This makes the broker more fair since new work is no longer prioritized over finishing up existing work.
It also contains several fixes to improve performance on the client side:
- Reduce traffic on the ping-port by adjusting the service directory's health check interval from every second to every 2 seconds
- Only check for expired service directory listings every 5 seconds (instead of every second)