Skip to content

v1.14.0

Compare
Choose a tag to compare
@github-actions github-actions released this 22 Jan 07:04
· 368 commits to main since this release
cdbeb2f

Dragonfly v1.14.0

This is our first release for this year. We've mainly focused on stability and performance improvements for this release.
Among other things it includes:

  • Tighter memory tracking
  • support for ACL keys
  • json parser allows '-' in field names.
  • Initial support for client tracking feature
  • XREADBLOCK fix for blocking case.

What's Changed

  • feat: DispatchTracker to replace everything by @dranikpg in #2179
  • fix(server): Call PostUpdate from LPUSH even for new keys by @chakaz in #2254
  • refactor: conn_context and reply_builder refactoring by @BorysTheDev in #2251
  • fix(connection): Add WeakRef to replace pubsub wait token by @dranikpg in #2227
  • bug(server): remove CO::READONLY for QUIT command. by @theyueli in #2263
  • chore: add a test demonstrating on how to pass a dash within json path by @romange in #2267
  • bug(hset): make hrandfield reply match Redis by @theyueli in #2266
  • feat(Server):support Verbatim strings resp type, using it for CLIENT LIST and INFO commands by @theyueli in #2264
  • feat(acl): add storage for acl keys by @kostasrim in #2257
  • fix(tiering): fix crash when item was deleted before offloaded by @adiholden in #2225
  • feat(server): Return per-type memory breakdown from INFO and /metrics by @chakaz in #2262
  • feat(acl): add acl keys to acl setuser command by @kostasrim in #2258
  • feat(acl): add acl keys to acl get command by @kostasrim in #2260
  • feat(acl): add acl keys to acl list command by @kostasrim in #2261
  • feat(acl): add validation for acl keys by @kostasrim in #2272
  • feat(acl): add acl keys to acl save/load by @kostasrim in #2273
  • feat(server): Support CLIENT TRACKING subcommand (1/2) by @theyueli in #2277
  • fix: accept '-' character when parsing json fields by @romange in #2271
  • chore: update helio by @romange in #2286
  • WIP: Auto PostUpdate() by @chakaz in #2268
  • fix(tiering): fix tiering crash on setting expire by @adiholden in #2285
  • chore: eliminate most of clang++ warnings by @romange in #2288
  • feat(acl): add acl keys to acl log command by @kostasrim in #2274
  • fix(server): Fix client pause and add test by @dranikpg in #2298
  • fix(server): handle no-key-transactional commands in multi/exec by @dranikpg in #2279
  • feat(server): Better reporting of per-type memory in /metrics by @chakaz in #2303
  • feat(server): Implement NUMSUB subcommand by @highpon in #2282
  • fix(memory): Add missing fields in connection memory by @chakaz in #2306
  • refactor(server): Refactor AddOrFind() by @chakaz in #2299
  • chore: update helio library by @romange in #2305
  • feat(cluster): Cancel blocking commands on cluster update by @dranikpg in #2255
  • feat(server): Convert DbSlice's AddOr* to return AutoUpdater by @chakaz in #2290
  • feat(server): Add dispatch queue bytes to /metrics by @chakaz in #2310
  • feat(replica): add master id on replica output for info replication by @adiholden in #2314
  • fix(server): Track all IoBuf capacity changes in Connection by @chakaz in #2309
  • refactor(DbSlice): Replace FindExt() with FindMutable() and FindReadOnly by @chakaz in #2308
  • refactor(server): Make FindFirst() read-only by @chakaz in #2317
  • fix(bug): access invalid prime table iterator by @adiholden in #2300
  • feat: add command flow for slot migration process by @BorysTheDev in #2292
  • feat(server): Support CLIENT TRACKING subcommand (2/2) by @theyueli in #2280
  • feat(server): Better accounting of DenseSet memory by @chakaz in #2325
  • feat(server): Account for RObj concrete objects by @chakaz in #2324
  • chore: remove support for save_schedule flag by @romange in #2327
  • fix(stream): make fix for XREADBLOCK function by @BorysTheDev in #2323
  • feat: introduce transaction statistics in the info output by @romange in #2328
  • chore: refactor slowlog code, no functionality changes by @romange in #2331
  • feat: add keyspace_mutations metric by @romange in #2329
  • feat: expose tx_queue_len metric by @romange in #2330
  • chore(search): Block list by @dranikpg in #2307
  • chore: refactor VersionMonitor into a separate file by @romange in #2326
  • refactor(server): Privatize PreUpdate() and PostUpdate() by @chakaz in #2322
  • feat: introduce 'debug tx' command and periodic overload logs by @romange in #2333
  • feat: track differrent patterns of multi/exec transactions by @romange in #2334
  • feat(search): Aggregator, step 1 by @dranikpg in #2332
  • feat: expose transaction types via /metrics by @romange in #2336
  • feat(server): Add reply count & latency metrics by @chakaz in #2340
  • fix: Invalid key lock strings with squashing by @dranikpg in #2341
  • bug(server): reject replicaof while loading from snapshot by @adiholden in #2338
  • chore: expose the multi length in slowlog by @romange in #2339
  • fix(server): Fix reply seconds & better metrics names by @chakaz in #2342
  • feat(makefile): Build with full debug symbols and strip in make package by @chakaz in #2343
  • fix(SimpleLruCounter): Correctly set bumped node's next by @chakaz in #2346
  • fix: relax the requirement for parsing successfully container limits by @romange in #2352
  • chore: transaction simplification by @romange in #2347
  • feat(getslotsinfo): Add memory usage per slot by @chakaz in #2355
  • refactor(generic_family): Don't allocate StringSink on the heap by @chakaz in #2356
  • chore: add "send" state to client list by @romange in #2357
  • fix "debug exec" command by @romange in #2354
  • feat(tiering): add max file size limit by @adiholden in #2344
  • feat: add SLOT-MIGRATION-STATUS cmd for source node by @BorysTheDev in #2349
  • fix: unblock transactions only if requirements are correct by @BorysTheDev in #2345
  • refactor(rdb): Expose default compression mode without direct flag by @chakaz in #2360
  • refactor(serializer): Move DUMP logic into RdbSerializer by @chakaz in #2363
  • fix(dash table): bucket count returns the number of buckets by @adiholden in #2359
  • test: Adding integration test using Relay benchmark by @theyueli in #2348
  • feat: introduce user timeout by @romange in #2361
  • chore: add comment for c_rehash in ca_cert_dir flag description by @kostasrim in #2365
  • chore: add memory usage test for skiplist encoding by @romange in #2367
  • chore: consolidate facade stats under a single struct by @romange in #2368
  • fix(test): Fix flaky test by @chakaz in #2372
  • feat(server): Add RestoreSerializer by @chakaz in #2366
  • refactor(SerializerBase): Move some logic from RdbSerializer to SerializerBase by @chakaz in #2373
  • fix(server): crash on rename save command on background save by @adiholden in #2375
  • refactor(cluster): remove SYNC cmd and do data transferring during FLOW by @BorysTheDev in #2369
  • feat(server): allow running memory commands under script by @adiholden in #2382
  • feat(lru): add generic lru class by @adiholden in #2351
  • feat: add flag to enable round robin sharding in non cluster mode by @kostasrim in #2364
  • chore: improvements in dash code by @romange in #2387
  • fix(regTests): assertion failure during load in cancel_replication_immediately by @kostasrim in #2371
  • chore(transaction): Avoid COORD_SCHED_EXEC ambiguity with multi transactions by @dranikpg in #2392
  • fix: ignore unexpected contents for /sys/fs/cgroup/cpu.max by @romange in #2394
  • chore: simple traffic logger by @dranikpg in #2378
  • feat(cluster): Add RestoreStreamer. by @chakaz in #2390
  • chore: reduce Makefile for release procedures only by @romange in #2397
  • feat: Store and diststore for GeoRadiusByMember by @azuredream in #2350
  • chore: server_family cleanups by @romange in #2398
  • feat: add os string by @romange in #2401
  • bug(server): log evicted keys in journal in PrimeEvictionPolicy. by @theyueli in #2302
  • feat(info): add new persistence section fields by @BorysTheDev in #2396
  • feat(cluster): Add params to slot migration full sync cut by @chakaz in #2403
  • feat: allow checking the compressability of the data by @romange in #2370
  • fix: do not return an error in memory-usage command by @romange in #2405
  • fix(server): call OnCbFinish after debug populate by @adiholden in #2358
  • Fix flush when migrating connection by @dranikpg in #2407
  • chore: remove atomic<> from ReplicaInfo::state by @romange in #2409
  • chore: fix our release pipeline by @romange in #2408
  • feat: introduce segment merge operation by @romange in #2412
  • feat(server): Implement CLIENT KILL by @chakaz in #2404
  • fix: missing error reply to client after AddOrFind throw std::bad_alloc by @kostasrim in #2411
  • fix(tx): guard parallel writes to local result by @dranikpg in #2417
  • cleanup: Remove unused PerformDeletion() overloads by @chakaz in #2418
  • feat: allow throttling tiered writes by @romange in #2414
  • feat(transaction): Single hop blocking, callback flags by @dranikpg in #2393
  • fix(rdb): Remove transaction from pre/post load search index rebuild by @dranikpg in #2419
  • fix: access to wrong thread local after command migrates fiber to a different thread by @kostasrim in #2410
  • fix: non reset fields in command config resetstat by @kostasrim in #2425
  • fix(info): Reply with correct redis_mode in `INFO by @chakaz in #2429
  • fix: release.sh by @romange in #2432
  • server(tiering): load data on read by @adiholden in #2415
  • chore(transaction): Clean up scheduling code by @dranikpg in #2422
  • chore: add both df tree impelementations to memory usage test by @romange in #2430
  • feat(server): Tracking memory usage for client tracking table by @theyueli in #2431
  • fix: Invalid memory access by @chakaz in #2435
  • fix(replication): Correctly replicate commands even when OOM by @chakaz in #2428
  • fix(server): Use custom journal for multi-key PFMERGE cmd by @chakaz in #2437
  • fix: release pipeline by @romange in #2439
  • feat: measure latency of pipelined commands by @romange in #2436
  • fix(server): dont allow snapshoting in tiering mode by @adiholden in #2438
  • fix: allow lock_on_hashtags with any cluster mode by @romange in #2443
  • fix(tiering): update iterator after await throttle by @adiholden in #2440

Huge thanks to all the contributors! ❤️

Full Changelog: v1.13.0...v1.14.0