KeyDB 6.3.4 Release Notes:
- Add keydb_modstatsd, a module for providing keydb stats to a local statsd server. Can be found under src/modules/keydb_modstatsd
- Fixed FreeBSD compile(Thanks to @bra-fsn)
- Fixed a bug in s3 bucket config that blocked startup(Thanks to Alexandre Chichmanian)
- Fixed a bug causing crash if keys command is called after a blocking command (Fixes issues #659, #605, #532)
- Added proper error checking of replica configs, now KeyDB will throw an error if replica-of config is passed before active-replica or multimaster configs
- Fixed double free bug in lazy free
- Added "overload-protect-percent" config, when enabled this will load shed clients whenever CPU usage exceeds configured value
- Added "availability-zone" config, this can be passed any string which will then be reported by info command
- Updated eviction logic to account for total system memory availability using sysinfo
- Fixed a bug where repl-backlog-size config was modified in keydb.conf with the runtime value during config rewrite
- Fixed a possible deadlock when running CLIENT KILL with large number of clients
- Fixed a bug where KeyDB would overcommit memory during fork BG save
- Fixed a bug with disk repl_backlog causing double free
- Fixed integer overflow issue in the temp rdb file naming (Thanks to @karthyuom)
- Fixed compile issue with GCC 13.1.1 (Thanks to @michieldwitte)
- Removed expireset and restored redis expire behaviour
- Fixed a bug causing forked processes to hang, specifically affecting RDB and AOF(Fixes issues #675, #619)
- Added "CLUSTER REPLICATE NO ONE" to turn a replica into an empty primary
- Added RDB-less full sync, can be enabled with config 'enable-keydb-fastsync'
FLASH(Beta):
- Added "flash-disable-key-cache" config to disable key cache which stores every key(but not value) in memory
- Moved cluster slot to key map to being stored by storage provider, rather than in memory
- Moved expires to be stored by storage provider, rather than in memory
- Enabled expiry/eviction from storage provider, previously only data stored in memory could be expired/evicted(Fixes #645 along with the 2 previous updates)
- Fixed a bug where swapdb result was not recovered after keydb restarts in FLASH mode (Thanks to @karthyuom)
- Fixed double free bug when fast sync was canceled early
- Fixed a bug where a temp rdb file with zero bytes is generated in flash mode (Thanks to @karthyuom)
- Fixed a bug where flash CF options are being reset to default after flushall (Thanks to @karthyuom)(Fixes issue #717)
- Updated debug reload command to work with flash
Dockerfile:
- Added support for KEYDB_PASSWORD env variable(Thanks to @einar-pexip)
- Compile with flash in Dockerfile(Thanks to @der-eismann)
- Fix broken redis-cli symlink (Thanks to @pimvandenbroek)
- Use tini for alpine docker(Thanks to @rofafor)