github dragonflydb/dragonfly v1.14.0

latest releases: v1.22.2, v1.22.1, v1.22.0...
8 months ago

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

Don't miss a new dragonfly release

NewReleases is sending notifications on new releases.