Releases: dragonflydb/dragonfly
v0.9.0
Dragonfly 0.9.0
YOM KIPPUR edition
This is quite significant release with lots of interesting features:
- Epoll support - now we support all Linux kernels !!!
Dragonfly automatically falls back to epoll API if iouring API is not available for some reason.
This can also reduce friction when running Dragonfly on k8s (no need to use--privileged
flag anymore).
If you want to force epoll instead of iouring you can do it with--force_epoll
flag. - New Dragonfly specific command
SADDEX key seconds member member ...
allows adding to sets members with TTL! - CPU usage is greatly reduced when Dragonfly is in idle mode (~10x reduction).
- Dragonfly can connect to Redis server in SLAVE mode (using
replicaof
command) MOVE
,SORT
andPERSIST
commands are now supported.
Huge thanks to all the contributors! ❤️
What's Changed
- feat(server): adding support for bitops #213 by @boazsade in #295
- Added more useful flags to the flags section by @Tomato6966 in #305
- feat(server): adding support for EXAT PXAT option at set command by @boazsade in #306
- feat(server): Implement MOVE command by @dranikpg in #298
- feat(docs): Update broken link to grafana dashboard by @odedponcz in #314
- chore(server): update license text by @romange in #312
- feat(server): bitcount commands support and unit tests #213 by @boazsade in #315
- chore(server): rdb save can now save into tcp socket directly. by @romange in #317
- feat(packaging): create deb packaging #249 by @acheevbhagat in #313
- fix(bug): dashtable split crashes when moving items from the old segment by @romange in #318
- feat(server): SORT command prototype by @dranikpg in #311
- fix(server): Fix ContainerEntry union initialization by @dranikpg in #323
- feat(server): Introduce transaction clock by @romange in #329
- fix(server): dfly_main.cc now compiled with march=core2. by @romange in #328
- feat(server): implement json.objkeys command (#104) by @iko1 in #327
- feat(server): support for bitop command - unit tests added #213 by @boazsade in #319
- feat(server): Enforce decomitting memory pages upon flushdb call by @romange in #337
- chore(DenseSet): Some code reorder without change in functionality. by @romange in #338
- feat(server): zrange family command support INF as case insensitive #326 by @boazsade in #336
- chore(denseset): Simplify DenseSet, remove empty links. by @romange in #339
- Add expiry semantics to the set. by @romange in #340
- chore(hset): Get rid of helper functions in header file. by @romange in #341
- chore(server): reduce iouring exposure across the codebase by @romange in #342
- feat(setfamily): Add SADDEX command by @romange in #348
- fix(server): better support for the --help option by @boazsade in #349
- fix(server): hscan command better support #347 by @boazsade in #350
- feat(server): support epoll linux api by @romange in #351
- feat(server): implement json.strappend & json.clear commands (#104) by @iko1 in #353
- feat(server): support for persist command #345 by @boazsade in #354
New Contributors
- @Tomato6966 made their first contribution in #305
Full Changelog: v0.8.0...v0.9.0
v0.8.0
Dragonfly 0.8.0
A nice release, not very big but things are moving in the right direction.
- Transactional support is extended to WATCH/UNWATCH by @dranikpg
- A new SET data-structure was introduced by @braydnm . It can potentially provide for up to 50% memory savings when using small records in the set. See dense set doc for more details. You can start using the upgraded set with
--use_set2
flag when running dragonfly. JSON.DEL
was added to JSON family by @iko1 .
Huge thanks to all the contributors! ❤️
What's Changed
- feat: Change tls command line argument to conform with Redis by @odedponcz in #276
- fix(server): Fix QUIT not shutting down connection by @dranikpg in #280
- feat(server): support for setnx command #281 by @boazsade in #283
- feat(server): Watch & Unwatch commands by @dranikpg in #277
- docs(api): Update api_status.md by @dranikpg in #285
- feat(core): Added DenseSet and StringSet types by @braydnm in #268
- chore(server): Fix clang warnings and errors by @romange in #290
- docs(src/core): readability improvements by @ryanrussell in #293
- fix(server): Added RDB load / save for DenseSet by @braydnm in #297
- docs(server): readability cleanup by @ryanrussell in #304
- feat(server): implement json.del command (#239) by @iko1 in #262
Full Changelog: v0.7.0...v0.8.0
v0.7.0
Dragonfly 0.7.0
Prominent features:
@iko1 , @dranikpg and @braydnm are without a doubt the stars of this release.
- Periodic snapshotting support - by @braydn
Check outsave_schedule
flag for that. - Preliminary json support - by @iko1
Try runningset foo '{"pi": 3.14 }'
and thenJSON.GET foo $.pi
- Implementing
STICK
command by @dranikpg
You can now reliably keep items inside dragonfly with--cache_mode
enabled. - Lua now supports cjson, struct, bits, msgpack modules (@dranikpg ).
- Improved memory capping when using
--maxmemory
flag.
We patched several holes that allowed dragonfly to grow past the specified limit.
In addition, I added a grafana/prometheus docker-compose file under tools/local/monitoring/
. It monitors a local dragonfly instance.
Huge thanks to all the contributors! ❤️
What's Changed
- fix: RENAMENX according to spec #229 by @odedponcz in #230
- docs: Improve wording in issue reporting by @odedponcz in #232
- feat(test): Add integration test for the node-redis client by @odedponcz in #233
- docs: Update README.md twitter handle by @odedponcz in #242
- fix:change static assets url for http monitoring page by @odedponcz in #243
- Move assets to static by @odedponcz in #247
- feat(monitoring): Add docker-compose for local monitoring dashboard. by @romange in #246
- feat(server): Implement STICK command #219 by @dranikpg in #245
- feat(server): Implemented periodic snapshotting (#161) by @braydnm in #250
- feat(server): tighten memory checks when inserting a new object. by @romange in #258
- Integrate experimental Json functionality by @romange in #259
- feat(core): Add lua modules by @dranikpg in #273
New Contributors
Full Changelog: v0.6.0...v0.7.0
v0.6.0
Dragonfly 0.6.0
The last release of the summer. 0.6 is very similar to 0.5 but considered stable.
In addition, it has support for pid file that helps when integrating with watchdog systems.
Huge thanks to all the contributors! ❤️
What's Changed
- feat(journal): Introduce basic journal support. by @romange in #211
- feat(server): add pidfile parameter. by @iko1 in #216
- fix(server): add gitsha to version output. by @romange in #217
- docs(README): minor fix by @eltociear in #221
New Contributors
- @eltociear made their first contribution in #221
Full Changelog: v0.5.0...v0.6.0
v0.5.0
Dragonfly 0.5.0
Prominent fixes:
Huge thanks to all the contributors! ❤️
What's Changed
- fix(action): switch git push to dedicated action by @romange in #192
- chore(rdb): Move object creation during load operation to shard threads. by @romange in #193
- doc(quick-start): add note for known issues by @romgrk in #194
- chore(server): improve error logging if info command fails. by @romange in #196
- fix(server): exit gracefully when iouring not supported by @iko1 in #197
- fix(server): setup sigill handler (#183) by @iko1 in #198
- docs(README): Document hz flag by @jbylund in #201
- [WIP] test: add dragonfly_db fixture to python tests #199 by @shmulik-klein in #204
- feat: Print out dragonfly version and build on startup #202 by @odedponcz in #203
- test: flush all records between pytest tests #199 by @shmulik-klein in #205
- fix(server): Fix #207 by @romange in #208
New Contributors
- @romgrk made their first contribution in #194
- @iko1 made their first contribution in #197
- @jbylund made their first contribution in #201
- @shmulik-klein made their first contribution in #204
Full Changelog: v0.4.0...v0.5.0
v0.4.0
Dragonfly 0.4.0
Prominent additions:
- PUBSUB api is feature complete for 2.8
- Improved response latency for hgetall/smembers calls.
- Request parser now accepts upto 64K arguments per request (raised from 8K).
- Parser errors are tracked now via INFO call
- Stability fixes.
Huge thanks to all the contributors! ❤️
What's Changed
- chore(strings): Simplify Set flow by @romange in #164
- feat(actions): bump helm-chart version when new container image is published by @tamcore in #162
- fix(docker-compose): Fetch actual Docker Compose file and add memlock conf to service by @lucagoslar in #173
- docs(docker-compose): Explain
NAT
overhead in docker-compose by @ryanrussell in #176 - chore(server): Improve the implementation of SendStringArr. by @romange in #178
- fix(server): Fix a crash when running "client list" command. by @romange in #179
- feat(pubsub): implement pubsub command close #90 by @zacharya19 in #175
- chore(dash): add dashtable benchmark. by @romange in #187
- chore(rdb): move object creation during loading to shard threads. by @romange in #188
- chore(pubsub): update api status by @romange in #189
New Contributors
- @lucagoslar made their first contribution in #173
Full Changelog: v0.3.1...v0.4.0
v0.3.1
Patch release Dragonfly 0.3.1
What's Changed
- fix(lua): Fix few lua-related bugs by @romange in #157
- fix(parser): Raise parser limit for array length from 8K to 64K by @romange in #158
Full Changelog: v0.3.0...v0.3.1
v0.3.0
Dragonfly 0.3.0
Dragonfly alpha release!
Prominent additions:
- Fixed deadlock bug #150
- Fixed HELLO behavior. That allows correct handshaking with Lettuce java client.
- Introduced preliminary support for Streams. See API compatibility for more info.
- added infrastructure to support the community efficiently: contributing guide, PR templates, pre-submit checks and more.
- Added quick-start guide
Huge thanks to all the contributors! ❤️
What's Changed
- Reduce scope of HELLO implementation by @alisaifee in #129
- feat(docker-compose): Add
docker-compose.yml
#100 by @ryanrussell in #130 - feat(community): Add Conventional Commits; Code of Conduct #107 by @ryanrussell in #133
- docs(PR Template): Add PR Template Enforcing Conventional Commits #107 by @ryanrussell in #137
- fix(zset): fixed zrevrange support WITHSCORES and add zrevrange test case (#106) by @Ansore in #135
- fix(parser): Fix wrong parsing of nested arrays. by @romange in #140
- implement partial streams API by @romange in #141
- feat(server): Add support for CPU to Info family of commands (fixes #18) by @acheevbhagat in #143
- docs(readme): Add Discord Channel and Community Link Bar by @ryanrussell in #151
- chore(issues): Add issue templates with links to Discord/Discussions by @ryanrussell in #152
- fix(transaction): Fix rare deadlock case - fixes #150. by @romange in #155
New Contributors
- @Ansore made their first contribution in #135
- @acheevbhagat made their first contribution in #143
Full Changelog: v0.2.0...v0.3.0
v0.3.0-alpha
Dragonfly 0.3.0-alpha
Dragonfly alpha release!
Prominent additions
- Fixed HELLO behavior. That allows correct handshaking with Lettuce java client.
- Introduced preliminary support for Streams. See API compatibility for more info.
- added infrastructure to support the community efficiently: contributing guide, PR templates, pre-submit checks and more.
- Added quick-start guide
Huge thanks to all the contributors! ❤️
What's Changed
- Reduce scope of HELLO implementation by @alisaifee in #129
- feat(docker-compose): Add
docker-compose.yml
#100 by @ryanrussell in #130 - feat(community): Add Conventional Commits; Code of Conduct #107 by @ryanrussell in #133
- docs(PR Template): Add PR Template Enforcing Conventional Commits #107 by @ryanrussell in #137
- fix(zset): fixed zrevrange support WITHSCORES and add zrevrange test case (#106) by @Ansore in #135
- fix(parser): Fix wrong parsing of nested arrays. by @romange in #140
- implement partial streams API by @romange in #141
- feat(server): Add support for CPU to Info family of commands (fixes #18) by @acheevbhagat in #143
New Contributors
- @Ansore made their first contribution in #135
- @acheevbhagat made their first contribution in #143
Full Changelog: v0.2.0...v0.3.0-alpha
v0.2.0
Dragonfly 0.2.0
New Dragonfly release! 🚀
If I forgot to include someone, please ping me - I do this manually.
Bug fixes
- SIGKILL when execute EVAL command #121
- invalid version #116
- improved container with better support for K8S #57
Unlocked abilities
- support for psubscribe/punsubscribe #111 and #68
- Helm charts #105
- Prometheus metrics native support #61
- Now we also distribute unstripped binaries with debug symbols.
Huge thanks to all the contributors! ❤️
What's Changed
- Fix info command to use git version by @zacharya19 in #49
- Fix a spelling error by @jherdman in #50
- Improve readability by @ryanrussell in #52
- Update dragonfly blurb by @romange in #48
- Update docker-release workflow to tag image with release version by @tamcore in #60
- docs: Repair Markdown markup by @olleolleolle in #63
- CI: Use v3 of Actions "upload-artifacts", "checkout" and "cache" by @olleolleolle in #62
- Improve Comment Readability by @ryanrussell in #69
- Add basic Prometheus support and metrics by @zacharya19 in #67
- Update build steps for Ubuntu by @quiver in #72
- Fixes #66. by @romange in #70
- Improving Readability r3 by @ryanrussell in #75
- Initial commit for helm chart (#57) by @tamcore in #79
- docs: Fix a variable name for bucket in Dashtable section by @shuuji3 in #80
- Fix bugs related to concurrency when saving multiple databases under … by @romange in #82
- Fix Various Naming Conventions around
Subscriber
by @ryanrussell in #87 - Add Promehtues metrics for Grafana close #61 by @zacharya19 in #85
- Add FAQ by @odedponcz in #64
- Factor out theAPI readiness matrix into a separate doc by @romange in #103
- Helm chart updates (v0.1.1, init command override, TLS configuration, CRs for ServiceMonitor and PrometheusRule objects) by @tamcore in #105
- Update response to HELLO command by @alisaifee in #102
- feat(docker): try increasing a memlock limit in the container by @romange in #114
- Support Pubsub (P)UNSUBSCRIBE commands without arguments by @alisaifee in #117
- Use sum instead of individual counts for channels/patterns by @alisaifee in #119
New Contributors
- @zacharya19 made their first contribution in #49
- @jherdman made their first contribution in #50
- @ryanrussell made their first contribution in #52
- @tamcore made their first contribution in #60
- @olleolleolle made their first contribution in #63
- @quiver made their first contribution in #72
- @shuuji3 made their first contribution in #80
- @alisaifee made their first contribution in #102
Full Changelog: v0.1.0...v0.2.0