Releases: ruby-protobuf/protobuf
Releases · ruby-protobuf/protobuf
Fix enum equality
v3.6.7
v3.4.4
v3.3.6
v3.3.5
Add support for send and receive timeouts on requests and available checks:
- Move client timeout (for request/response) to the ZMQ layer since ZMQ 3 supports timeout on the socket layer directly. It works better than a poller/polling item and makes the timeout intervals configurable (via the
PB_ZMQ_CLIENT_SND_TIMEOUT
andPB_ZMQ_CLIENT_RCV_TIMEOUT
environment variables, both default to 300 seconds). - Set send and receive timeouts to fix an issue where ZMQ clients hang when sending available checks to servers that have are in the process of shutting down by (configurable via the
PB_ZMQ_CLIENT_CHECK_AVAILABLE_SND_TIMEOUT
andPB_ZMQ_CLIENT_CHECK_AVAILABLE_RCV_TIMEOUT
environment variables, both default to 200 milliseconds).
Adding these timeouts made a significant change in time to recover after a process failure or process blockage
v3.3.4
Move values that were hardcoded into the Zmq broker/connector into environment variables with "reasonable" defaults:
- PB_ZMQ_CLIENT_HOST_ALIVE_CHECK_INTERVAL
How many seconds between health checks (defaults to 1) - PB_ZMQ_CLIENT_SERVER_LOOKUP_ATTEMPTS
How many times to lookup the server in the service directory list (defaults to 5) - PB_ZMQ_SERVER_BACKEND_POLL_WEIGHT
In the broker, this is how many backend reads will be executed (if the backend socket is readable) while processing the backend responses (defaults to 1) - PB_ZMQ_SERVER_FRONTEND_POLL_WEIGHT
In the broker, this is how many frontend reads will be executed if the frontend socket is readable while processing the frontend requests (defaults to 1)
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)