Skip to content

Centrifugo PRO v6.9.2

Latest

Choose a tag to compare

@FZambia FZambia released this 18 Aug 05:16
0b35c13

Centrifugo PRO is an extended version of Centrifugo with a set of additional features. These features can provide your business with unique benefits – drastically save development time, reduce resource usage on a server, protect your backend from misusing, and put the system observability to the next level.

More details and feature description can be found in Centrifugo PRO docs.

What's changed

  • Everything from Centrifugo OSS v6.9.2
  • New websocket.process_commands_off_read_loop option to cut memory usage in case of having many mostly idle WebSocket connections. A WebSocket connection processes each command on its read loop, and that read goroutine's stack grows to the deepest call it ever makes (even just the initial connect) and is never given back while the connection lives. With this option enabled, each command is processed on a short-lived goroutine so the read loop itself stays shallow — the deep stack goes back to the Go runtime's stack pool and is reused by the next connection that needs it, instead of being pinned to a connection that spends its life waiting. This roughly halves the read goroutine's stack (around 4 KB less per connection), which helps deployments holding large pools of mostly-idle connections. Off by default, and it adds a small per-command latency that becomes negligible once many connections are active. See the Tuning Centrifugo PRO for large number of idle WebSocket connections blog post for this and the other options that reduce idle-connection overhead.
  • More reliable node-grouped sharded PUB/SUB after Redis failover — a node-grouped connection serves many partitions, so a stalled one is invisible until traffic for some partition stops arriving — for example a healthy socket that, after a Redis failover, is attached to a node that no longer receives publishes. Each idle node-grouped connection is now probed for liveness on a shard channel, and a probe that goes unacknowledged rebuilds the Redis Cluster topology. See Node-grouped sharded PUB/SUB.