Repository navigation
v0.1.6
Highlights
- ACL: a user table with per-command and per-subcommand enforcement,
ACL LOG,requirepass/user/acl-pubsub-defaultin the config file. - Slow log:
SLOWLOG GET/LEN/RESETwith runtime thresholds viaCONFIG SET, credentials redacted,PSLOWLOGreads every node's log. Off by default (slowlog-log-slower-than -1); timing costs about 1% of peak throughput when on. - Slot migrations and failovers are ridden out: TRYAGAIN is retried whole so multi-key commands stay atomic under atomic slot migration, a READONLY after a failover is resent to the shard's new master, and a script is reloaded on NOSCRIPT after a redirect.
- Observability:
INFOgains# Commandstats(calls per command),# Clusterandtotal_error_replies;CLIENT LISTreports each connection's last command. - Cluster databases (
SELECT), shard pubsub,WATCH/UNWATCHon an exclusive connection,SCRIPTandFUNCTIONmanagement; the command table is generated from Redis 8.10.1 and Valkey 9.1.2 with key specs. docs/compatibility.mdstates what the proxy does not carry over from mt-proxy and where its semantics differ from a single Redis.- Hot path: every batch in this release was A/B-measured against its base on a 128-master rig; default-mode peak throughput is unchanged within the A/A noise floor.
Changelog
Features
- b8eec53 feat: PSLOWLOG forwards a SLOWLOG subcommand to every node
- d69b4dd feat: a proxy-side slow log with SLOWLOG and runtime thresholds
- 9085cf1 feat: per-command call counts in INFO and the last command in CLIENT LIST
- a29e806 feat: ride out TRYAGAIN whole and READONLY on a keyless broadcast
- fae8209 feat: cluster databases
- 20e559d feat: ride out atomic slot migrations
- e670fe3 feat: shard pubsub
- 535b680 feat: WATCH and UNWATCH on an exclusive connection
- 989c399 feat: command table from Redis 8.10.1 and Valkey 9.1.2
- 179ca6a feat: ACL user table with per-command enforcement
- 46f0d04 feat: SCRIPT and FUNCTION management, scripts reloaded on NOSCRIPT
- d1e9007 feat: command table from COMMAND INFO, numkeys key specs, newer blocking forms
Performance
- ba5b485 perf: the slow log is opt-in
Bug fixes
- bb19ea3 fix: answer SLOWLOG on a tracked task behind the hold, parse XREAD once
- 256fb9d fix: SLOWLOG answers after the session's earlier replies settle, a blocking XREAD stays untimed from the start
- 71828d2 fix: SLOWLOG RESET clears at its own place in the session's order
- 0555b4e fix: time every accepted command at its first reply sequence
- bf814fe fix: the argument-count summary outranks redaction, and one comment less
- 5470be5 fix: redact every credential argument, name only a real transaction exec, time SELECT
- 16c8bd1 fix: keep a bounded, redacted argument list per slow-log entry
- 35ea997 fix: count an error carried by a pubsub confirmation too
- 685ef0b fix: count error replies where they are written and commands once accepted
- 7fb3917 fix: track every detached ride-out for teardown
- 403dfd2 fix: abort a stalled broadcast at teardown, and send a reload's frames as one outbound
- 4346a29 fix: hold the session behind a broadcast instead of parking its reader, and keep ASKING on a script reload
- 98b1325 fix: resend a READONLY keyless write to its shard's new master only, and reload a redirected EVALSHA where it landed
- 8388832 fix: include Redis vector commands in generated table (#14)
- 4e68ee3 fix: client-info name and user fields are single plain tokens
- 33a0139 fix: ACL LOG client-info names the session user and the invoking command
- b49f261 fix: no-auth commands skip ACL rules, ACL LOG carries a full client-info line
- f4df84e fix: an unknown subcommand needs the whole container, log names are clipped
- e018b92 fix: ACL rules apply per subcommand, a disabled default user needs a login
- 7b413d2 fix: a keyless script gets a ring entry, so NOSCRIPT reloads it too
- 036f986 fix: script bodies are copied, a partial SCRIPT FLUSH reports its loss
- 18ed02b fix: NOSCRIPT reload only in order, SCRIPT FLUSH forgets at dispatch
- a09724b fix: keyword key scans start where Redis starts them
- e5913b0 fix: scripts keep the write flag, MULTI and GETKEYS walk every key spec
Other
Full Changelog: v0.1.5...v0.1.6