Releases: dragonflydb/dragonfly
v0.11.0
Dragonfly v0.11.0 - Thanksgiving edition
Some prominent changes:
- You can now pass
--maxmemory=16G
flag instead of passing raw bytes. - The monitor command is implemented; it's also much faster than in Redis.
- The missing options in existing commands were added. Amazing work by our contributors!
- Significant progress was made with the replication. Still, lots needs to be done in this area. Expected release for this feature - Q1 23.
Huge thanks to all the contributors! ❤️
What's Changed
- feat(server): sending and dispatching of messages using different internals by @boazsade in #424
- ci(workflow): fixing discord notification link by @ranrib in #419
- feat(server): Allow sampling arena stats from a specified thread by @romange in #428
- Monitor command by @boazsade in #427
- feat(server): Multi rdb load by @dranikpg in #430
- refactor(server): Refactor and tidy dflycmd by @dranikpg in #432
- feat(server): monitor command should return OK on creation (#344) by @boazsade in #433
- refactor(server): Separate start & stop in rdb save by @dranikpg in #437
- fix: dragonfly compilation failure due to glibc version less than 2.30 by @Super-long in #434
- feat(server): monitor command - cover by tests by @boazsade in #435
- fix: "wrong number of arguments" must be in lower case by @lsvmello in #439
- refactor(tests): Refactor pytest by @dranikpg in #449
- docs(build): Canonicalize build from source instructions. Add CLA terms by @romange in #454
- feat(server): implement TOUCH command by @lsvmello in #444
- feat(server): implement json.mget command (#104) by @iko1 in #455
- feat(server): Support for LIMIT and REV in ZRANGE #422 by @RedhaL in #456
- fix(list): Fixes blpop failure. by @romange in #462
- ci: added clang pre-commit hook by @lsvmello in #461
- feat(tests): ioredis being able to successfully run tests, make it ready to be part of CI by @boazsade in #459
- feat(server): Basic capped full sync by @dranikpg in #440
- feat(server) implement pexpire command by @b0bleet in #464
- server: implemented json.arrappend command by @b0bleet in #460
- feat(server): simplify handling of the pub message handling by @boazsade in #465
- refactor(server): Refactor replica by @dranikpg in #472
- fix(server): reject eval inside transaction multi blocks #457 by @boazsade in #471
- feat(server): implement json.debug command (#104) by @iko1 in #463
- fix(server): issue with invalid command inside multi #468 by @boazsade in #469
- SSCAN command support count and match parameters by @adiholden in #466
- bug(dense set): fix scan function to return only home bucket data by @adiholden in #474
- fix: maxmemory flag support human-readable format by @lsvmello in #476
- fix(server): Fix bad maxmemory casting by @romange in #477
- fix(server): Fix snapshot saving bug by @dranikpg in #479
- feat(server): add support for KEEPTTL options with SET command #389 by @Super-long in #478
- fix: DCHECK_NOTNULL gets WARNING when return value is not used. by @Super-long in #483
- fix(server): Fix path concatenation in save by @dranikpg in #481
- feat(server): implement json.resp command (#104) by @iko1 in #482
- feat(server family): add connection set name command fixes #458 by @adiholden in #485
New Contributors
- @Super-long made their first contribution in #434
- @lsvmello made their first contribution in #439
- @b0bleet made their first contribution in #464
- @adiholden made their first contribution in #466
Full Changelog: v0.10.0...v0.11.0
v0.10.0
Dragonfly 0.10.0
Hacktober edition
This release was unquestionably the result of community collaboration.
We are incredibly excited and honored to welcome all first-time contributors.
- Quite a few commands from 5.x, 6.x APIs were added by the community (see below).
- Support for dump/restore commands.
- Not so slowly but quite surely @iko1 added more json commands. This time - array related.
- bug fixes and general improvements.
Huge thanks to all the contributors! ❤️
What's Changed
- feat(server): Implement ZMSCORE command #357 by @logandk in #367
- feat(server): implement json.arrpop command (#104) by @iko1 in #362
- feat(server): Add GETDEL command by @inohime in #365
- chore(server): Improve malloc-stats output by @romange in #370
- build(ci): add discord message on docker release by @ranrib in #375
- feat(server): implement json.arrtrim command (#104) by @iko1 in #373
- feat(server): Implement SMISMEMBER command by @ATM-SALEH in #377
- feat(server): Implement LPOS command #368 by @inohime in #379
- fix(server): support for dump command, API update #343 by @boazsade in #371
- feat(server): implement json.arrinsert command (#104) by @iko1 in #372
- feat(server): Implement ZPOPMIN and ZPOPMAX #358 #359 by @RedhaL in #378
- chore(server): Refactor expire functionality and move it to DbSlice by @romange in #388
- feat(server): implement json.arrindex command (#104) by @iko1 in #376
- feat(server): implement LMOVE #369 by @YuxuanChen98 in #391
- feat(server): Implement GETEX command #385 by @matchyc in #387
- chore(tests): adds support for ioredis integration tests + instructio… by @gil-air-may in #394
- feat(server): support restore command - refactor load class (#343) by @boazsade in #386
- fix some typos by @cuishuang in #398
- Update README.md by @JensColman in #399
- Update dependency list in README.md by @eecheng87 in #403
- fix(server): remove double decrement of obj_memory_usage. by @romange in #406
- docs(server): Update the API status, README and LICENSE date by @romange in #410
- fix(hset): fix hset match bug by @romange in #411
New Contributors
- @logandk made their first contribution in #367
- @inohime made their first contribution in #365
- @ranrib made their first contribution in #375
- @ATM-SALEH made their first contribution in #377
- @RedhaL made their first contribution in #378
- @YuxuanChen98 made their first contribution in #391
- @matchyc made their first contribution in #387
- @gil-air-may made their first contribution in #394
- @cuishuang made their first contribution in #398
- @JensColman made their first contribution in #399
- @eecheng87 made their first contribution in #403
Full Changelog: v0.9.1...v0.10.0
v0.9.1
Dragonfly 0.9.1
A patch release fixing a possible deadlock when running with epoll API.
What's Changed
- feat(server): Implement MEMORY MALLOC-STATS command by @romange in #363
- chore(test): Allow running tests with epoll proactor by @romange in #364
- fix(epoll): pull newest helio dependency by @romange in #366
Full Changelog: v0.9.0...v0.9.1
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