Dragonfly v1.2.0
Another strong release for Dragonfly. Important changes include:
- Starting this release, Dragonfly will automatically save a snapshot on exit and will automatically load it back
when it starts from the same directory. This feature has been a much-asked-for - we hope you find it useful!
Thanks @royjacobson for implementing it!- As before, the snapshot's filename will contain a timestamp by default, and will not override previous snapshots. To overwrite previous snapshots, pass a custom value to the
--dbfilename
configuration option. - To disable automatic snapshots, pass an empty string to
--dbfilename
.
Thanks @royjacobson !
- As before, the snapshot's filename will contain a timestamp by default, and will not override previous snapshots. To overwrite previous snapshots, pass a custom value to the
- Replication stability improvements - thanks to @adiholden
- Lots of performance and stability improvements around PubSub - @dranikpg
- Lots of performance improvements around Lua scripting and transactions. @dranikpg
- Support for IPv6 - @royjacobson
- Automatically recognize container limits when deducing maxmemory and number of cpus: @talbii
- Json improvements by @iko1
What's Changed
- feat(facade): Capturing reply builder by @dranikpg in #1001
- fix: update helio dependency by @romange in #1030
- fix: another pass on fixing namespace imports to support fb2 by @romange in #1024
- fix(server): Return the replica's port on ROLE command by @royjacobson in #1027
- fix(server): Use connection pool only for regular messages by @dranikpg in #1038
- feat(server): Better logging for replication by @royjacobson in #1041
- Handle GET parameter for SET command. by @chakaz in #1023
- feat(tests): rand seed flag and output by @dranikpg in #1044
- (build)allow to compile with a custom OpenSSL installation by @vvhungy in #1022
- chore: update helio dependency by @romange in #1047
- feat: increase the flexibility of how to assign DF threads by @romange in #1042
- fix(interpreter): Remove converting type checks by @dranikpg in #1051
- feat(server): Squashed exec by @dranikpg in #1025
- chore: ignore vscode's launch.json by @royjacobson in #1054
- chore: change Dragonfly to use fb2 helio library. by @romange in #1049
- fix: use fibers.h alias for SimpleChannel by @royjacobson in #1059
- fix: implement fiber migrate inside helio by @romange in #1061
- fix: do not crash when running on WSL1 by @romange in #1062
- fix(server): Set lower timeouts for Replica::ConnectAndAuth() by @royjacobson in #1043
- bug(sse2neon): fix sanitizer crash in _mm_loadu_si128 by @adiholden in #1037
- Remove cmd name from args by @dranikpg in #1057
- chore: disable self-hosted runner by @romange in #1067
- fix(server): Optimize StoredCmd by @dranikpg in #1053
- chore: update helio by @royjacobson in #1069
- fix(server): Fix resp3 for pubsub commands by @ashotland in #1068
- chore: Split DispatchCommand into validation and main part by @dranikpg in #1071
- fix: fix lua monitor pytest by @dranikpg in #1073
- Only copy previous value's string when needed. by @chakaz in #1075
- fix(regression-test): Delete tests/dump.rdb by @ashotland in #1077
- feat: enable multi-tx squashing. by @romange in #1074
- fix(regression-tests): Add PortPicker by @ashotland in #1078
- Revert to use CachePrevValueIfNeeded(), but let it call GetString() if needed. by @chakaz in #1080
- fix: Update cntx->cid on multi-tx'es by @dranikpg in #1081
- Lua script async calls by @dranikpg in #1070
- fix(tests): Don't return the same port from PortPicker.get_available_port twice by @royjacobson in #1083
- fix: bugs in rdb code by @romange in #1079
- feat(server): Support CONFIG GET [databases|maxmemory] by @chakaz in #1093
- fix: Remove incremental locking by @dranikpg in #1094
- feat: add oom insertion rejections by @romange in #1096
- fix: systemd configuration by @romange in #1097
- feat(server): Support IPv6 addresses for replication by @royjacobson in #1087
- feat(server): Insert timestamp into snapshot names explicitly by @royjacobson in #1028
- Refactor connection by @dranikpg in #1098
- fix: fix default instance port blocking in pytest by @dranikpg in #1102
- fix(server): Allow interrupting REPLICAOF commands during full sync by @royjacobson in #1058
- chore: Allow passing empty strings as flag arguments in DflyInstance by @royjacobson in #1104
- fix: report errors from commands with redis.call by @dranikpg in #1108
- fix(helm): Allow prometheus rules fields to be empty by @Pothulapati in #1100
- fix(parser): Don't accept NILs as command arguments in server mode by @royjacobson in #1101
- fix(server): Don't allow directory escapes in dbfilename by @royjacobson in #1105
- fix(server): Better error reporting when opening snapshot files by @royjacobson in #1112
- feat(server): Save on shutdown by @royjacobson in #1086
- fix(server): Prevent preemption inside SerializeBucket by @royjacobson in #1111
- fix(server): json.set should add missing keys and add missing cmd... by @iko1 in #1065
- docs(readme) : doc flagfile by @adiholden in #1110
- chore: enable self hosted runner by @adiholden in #1116
- fix(tests): Disable 'dbfilename' unless explicitly given in the test by @royjacobson in #1117
- fix: container limits by @talbii in #1109
- Dispatch queue memory optimizations by @dranikpg in #1103
- Collect errors from async lua calls by @dranikpg in #1092
- docs: describe command squashing by @dranikpg in #1119
- chore: adding polishes for reading cgroup files by @romange in #1121
- fix: replace journal executor reply builder by @dranikpg in #1120
- fix(test): add wait for all replicas to finish by @adiholden in #1124
- Fix async lua bugs by @dranikpg in #1123
- bug(server): replicate scripts in stable state by @adiholden in #1114
- feat: Add skeleton code for parser/lexer generation by @romange in #1126
- chore: simplify debian package filename. by @romange in #1128
New Contributors
- @royjacobson made their first contribution in #1027
- @vvhungy made their first contribution in #1022
Huge thanks to all the contributors! ❤️
Full Changelog: v1.1.0...v1.2.0