Skip to content

Releases: dragonflyoss/dragonfly

v2.4.1

23 Jan 03:32
e2cae46

Choose a tag to compare

Changelog

Bug Fixes

  • e2cae46 fix(security): Dragonfly manager job API unauthenticated access (#4575)

Contributors

Thanks to all the contributors! ❤️

v2.4.1-rc.1

23 Jan 02:41

Choose a tag to compare

Changelog

Features

  • a0240e2 feat(router): remove deprecated preheat API endpoints

Bug Fixes

  • 9fb9a2d fix(security): Dragonfly manager job API unauthenticated access

Chores

Contributors

Thanks to all the contributors! ❤️

v2.4.1-rc.0

22 Jan 14:05
05a2137

Choose a tag to compare

Changelog

Features

  • 05a2137 feat(router): remove deprecated preheat API endpoints (#4574)

Chores

Contributors

Thanks to all the contributors! ❤️

v2.4.1-beta.1

21 Jan 02:59
49343a4

Choose a tag to compare

Changelog

Bug Fixes

  • 49343a4 fix(manager,scheduler): IPv6-safe host:port formatting (#4555)

Contributors

Thanks to all the contributors! ❤️

v2.4.1-beta.0

20 Jan 14:43
a9301ea

Choose a tag to compare

Changelog

Features

  • a9301ea feat(scheduler): add Name field to Host struct (#4570)

Dependency updates

  • 4dadc8d chore(deps): bump actions/cache from 5.0.1 to 5.0.2 (#4569)
  • 0c9bc03 chore(deps): bump actions/setup-go from 5.5.0 to 6.2.0 (#4565)
  • e5872f4 chore(deps): bump anchore/sbom-action from 0.21.0 to 0.21.1 (#4560)
  • 95ac2a9 chore(deps): bump github.com/onsi/ginkgo/v2 from 2.27.2 to 2.27.4 (#4561)
  • 4edc8e6 chore(deps): bump github.com/onsi/ginkgo/v2 from 2.27.4 to 2.27.5 (#4564)
  • 7dc356a chore(deps): bump github.com/onsi/gomega from 1.38.3 to 1.39.0 (#4559)
  • 9ec3fcf chore(deps): bump github/codeql-action from 4.31.9 to 4.31.10 (#4562)
  • fcafee6 chore(deps): bump golang.org/x/crypto from 0.44.0 to 0.47.0 (#4558)
  • 6579448 chore(deps): bump google.golang.org/api from 0.248.0 to 0.260.0 (#4566)

Contributors

Thanks to all the contributors! ❤️

v2.4.0

12 Jan 07:35
3253319

Choose a tag to compare

Dragonfly v2.4.0 is released

Dragonfly v2.4.0 is released!🎉🎉🎉 Thanks the contributors who made this release happend and welcome you to visit d7y.io website.

dragonfly

New features and enhancements

load-aware scheduling algorithm

A two-stage scheduling algorithm combining central scheduling with node-level secondary scheduling to
optimize P2P download performance based on real-time load awareness.

p1

For more information, please refer to the Scheduling.

Vortex Protocol Support for P2P File Transfer

Dragonfly provide the new Vortex transfer protocol based on TLV to improve the download performance in internal network.
Use the TLV (Tag-Length-Value) format as a lightweight protocol to replace gRPC for data transfer between peers.
TCP-based Vortex reduces large file download time by 50% and QUIC-based Vortex by 40% compared to gRPC, both effectively reducing peak memory usage.

For more information, please refer to the TCP Protocol Support for P2P File Transfer and QUIC Protocol Support for P2P File Transfer.

Request SDK

A SDK for routing User requests to Seed Peers using consistent hashing, replacing the previous Kubernetes Service load balancing approach.

p2

For more details, please refer to Request SDK.

Simple Multi‑Cluster Kubernetes Deployment with Scheduler Cluster ID

Dragonfly supports a simplified feature for deploying and managing multiple Kubernetes clusters by explicitly assigning a schedulerClusterID to each cluster.
This approach allows users to directly control cluster affinity without relying on location‑based scheduling metadata such as IDC, hostname, or IP.

Using this feature, each Peer, Seed Peer, and Scheduler determines its target scheduler cluster through a clearly defined scheduler cluster ID.
This ensures precise separation between clusters and predictable cross‑cluster behavior.

p3

For more information, please refer to the Create Dragonfly Cluster Simple.

Performance and Resource Optimization for Manager and Scheduler Components

Enhanced service performance and resource utilization across Manager and Scheduler components while significantly reducing
CPU and memory overhead, delivering improved system efficiency and better resource management.

Enhanced Preheating

  • Support for IP-based peer selection in preheating jobs with priority-based selection logic where IP specification
    takes highest priority, followed by count-based and percentage-based selection

  • Support for preheating multiple URLs in a single request.

  • Support for preheating file and image via Scheduler gRPC interface.

p4

Calculate task ID based on image blob SHA256 to avoid redundant downloads

The Client now supports calculating task IDs directly from the SHA256 hash of image blobs instead of using the download URL.
This enhancement prevents redundant downloads and data duplication when the same blob is accessed from
different registry domains.

Cache HTTP 307 redirects for split downloads

Support for caching HTTP 307 (Temporary Redirect) responses to optimize Dragonfly's multi-piece download performance.
When a download URL is split into multiple pieces, the redirect target is now cached,
eliminating redundant redirect requests and reducing latency.

Go Client Deprecated and Replaced by Rust Client

The Go client has been deprecated and replaced by the Rust Client. All future development and maintenance will focus
exclusively on the Rust client, which offers improved performance, stability, and reliability.

For more information, please refer to the dragoflyoss/client.

Additional Enhancements

  • Enable 64K page size support for ARM64 in the Dragonfly Rust client.
  • Fix missing git commit metadata in dfget version output.
  • Support for config_path of io.containerd.cri.v1.images plugin for containerd V3 configuration.
  • Replaces glibc DNS resolver with hickory-dns in reqwest to implement DNS caching and prevent excessive DNS lookups during piece downloads.
  • Support for the --include-files flag to selectively download files from a directory.
  • Add the --no-progress flag to disable the download progress bar output.
  • Support for custom request headers in backend operations, enabling flexible header configuration for HTTP requests.
  • Refactored log output to reduce redundant logging and improve overall logging efficiency.

Significant bug fixes

  • Modified the database field type from text to longtext to support storing the information of preheating job.
  • Fixed panic on repeated seed peer service stops during Scheduler shutdown.
  • Fixed broker authentication failure when specifying the Redis password without setting a username.

Nydus

New features and enhancements

  • Nydusd: Add CRC32 validation support for both RAFS V5 and V6 formats, enhancing data integrity verification.
  • Nydusd: Support resending FUSE requests during nydusd restoration, improving daemon recovery reliability.
  • Nydusd: Enhance VFS state saving mechanism for daemon hot upgrade and failover.
  • Nydusify: Introduce Nydus-to-OCI reverse conversion capability, enabling seamless migration back to OCI format.
  • Nydusify: Implement zero-disk transfer for image copy, significantly reducing local disk usage during copy operations.
  • Snapshotter: Builtin blob.meta in bootstrap for blob fetch reliability for RAFS v6 image.

Significant bug fixes

  • Nydusd: Fix auth token fetching for access_token field in registry authentication.
  • Nydusd: Add recursive inode/dentry invalidation for umount API.
  • Nydus Image: Fix multiple issues in optimize subcommand and add backend configuration support.
  • Snapshotter: Implement lazy parent recovery for proxy mode to handle missing parent snapshots.

Others

You can see CHANGELOG for more details.

v2.3.5-rc.3

06 Jan 06:00
6533aef

Choose a tag to compare

Changelog

Features

  • 7172afd feat(scheduler): Add task completion status tracking for preheatImage/preheatFile (#4528)

Bug Fixes

  • bed6b6c refactor(job): simplify IsFinished logic (#4540)
  • 40b001a refactor: improve error handling and optimize peer store operations (#4539)

Dependency updates

  • d122374 chore(deps): bump github.com/onsi/gomega from 1.38.2 to 1.38.3 (#4531)
  • f85ee8d chore(deps): bump google.golang.org/grpc from 1.75.0 to 1.78.0 (#4547)
  • ba311ee chore(deps): bump kentaro-m/auto-assign-action from 6cd97c823cf4de88c6ca0059841f4f8b3bae70cd to 72309cdba98adf773e9326cd1964e7d6bb7e1513 (#4536)
  • ca4aeb5 chore(deps): bump kentaro-m/auto-assign-action from 72309cdba98adf773e9326cd1964e7d6bb7e1513 to 18e62580c51802a607cac53db7cb07ddacb24731 (#4548)
  • 45df05d chore(deps): improve OpenSSF results (#4530)

Chores

  • 6533aef build(release): add upload-tag-name input for assets upload (#4551)
  • e3df150 chore: update Go version to 1.25.5 (#4542)
  • e032010 ci(release): enable asset upload in SLSA workflow (#4549)

Contributors

Thanks to all the contributors! ❤️

v2.3.5-rc.2

06 Jan 02:40
a8c2100

Choose a tag to compare

Changelog

Bug Fixes

  • a8c2100 fix(peer): update event transition for failed state (#4529)

Contributors

Thanks to all the contributors! ❤️

v2.3.5-rc.1

26 Dec 06:21
ddf08ec

Choose a tag to compare

Changelog

Features

  • ddf08ec feat(task): add URL and object storage fields (#4527)

Chores

  • edae6e4 chore: update submodule references for client and console (#4525)

Contributors

Thanks to all the contributors! ❤️

v2.3.5-rc.0

24 Dec 12:53
0e661bf

Choose a tag to compare

Changelog

Features

  • 0e661bf feat: support persistent peer back-to-source and improve error handling (#4523)

Dependency updates

  • 0aec3d3 chore(deps): bump docker/setup-buildx-action from 3.11.1 to 3.12.0 (#4519)
  • 9955a96 chore(deps): bump github/codeql-action from 4.31.8 to 4.31.9 (#4518)
  • 44f8814 chore(deps): bump kentaro-m/auto-assign-action from 1c84c62f79d19c9fcab882efcf5da979c72b3c97 to 6cd97c823cf4de88c6ca0059841f4f8b3bae70cd (#4520)

Chores

  • 53c5b11 chore(scheduler): bump api to v2.2.6 and drop persistent task tag/app/pieceLength (#4521)

Contributors

Thanks to all the contributors! ❤️