Commit Graph

38 Commits

Author SHA1 Message Date
Gaius b7dc472df9
refactor(quic): integrate QUIC and downloader (#1378)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-09-25 19:57:04 +08:00
LXDgit2018 74a6f04b8c
feat: Add QUIC Client and Server Implementation for Piece Download in dragonfly-client-storage (#1376)
Signed-off-by: LXDgit2018 <1289504283@qq.com>
2025-09-25 11:31:20 +08:00
Gaius 160f51396f
refactor: tcp storage server and client (#1361)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-09-22 17:44:20 +08:00
Gaius 79fa36ca97
refactor(downloader): streamline download concurrency handling (#1341)
* style(error): update error message formatting

Signed-off-by: Gaius <gaius.qi@gmail.com>

* refactor(downloader): streamline download concurrency handling

Signed-off-by: Gaius <gaius.qi@gmail.com>

---------

Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-09-09 15:57:00 +08:00
Gaius f2315f2804
feat(dragonfly-client-storage): add write_piece_timeout to storage config and enhance piece download timeout handling (#1146)
feat(dragonfly-client-storage): add write_piece_timeout to storage config and enhance piece download timeout handling

This change introduces a `write_piece_timeout` configuration to the storage module, allowing customizable timeouts for writing pieces to storage (e.g., disk or cache). The default timeout is set to 90 seconds. The total timeout for piece operations now combines `download.piece was timeout` and `storage.write_piece_timeout`. Key changes include:

- Added `write_piece_timeout` field to `Storage` config with default and serialization support.
- Updated `wait_for_piece_finished` and `wait_for_piece_finished_by_task_id` to use combined timeout (`download.piece_timeout + storage.write_piece_timeout`).
- Introduced `DownloadPieceFinished` error for piece download timeouts and refactored `download_piece_from_source_finished` and `download_piece_from_parent_finished` to enforce timeouts using `tokio::select!`.
- Increased default `download.piece_timeout` from 60s to 120s for robustness.
- Removed `wait_for_piece_count` debug logging to simplify code.
- Updated tests to validate `write_piece_timeout` parsing.

These changes improve timeout granularity and reliability for piece operations.

Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-05-12 20:52:21 +08:00
Gaius f1a9f0af55
feat: remove unnecessary dependencies (#1085)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-04-10 17:03:04 +08:00
Gaius 58da38d9f9
feat: support persist cache task when scheduler replicates task (#953)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-01-26 22:25:05 +08:00
Gaius c67f13e231
feat: rename remote peer to parent (#901)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-12-17 16:19:28 +08:00
dependabot[bot] c835aa6a2e
chore(deps): Bump libloading from 0.8.5 to 0.8.6 (#890)
Bumps [libloading](https://github.com/nagisa/rust_libloading) from 0.8.5 to 0.8.6.
- [Commits](https://github.com/nagisa/rust_libloading/compare/0.8.5...0.8.6)

---
updated-dependencies:
- dependency-name: libloading
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-09 20:16:15 +08:00
Gaius 064a3f005c
feat: add retry middleware for http backend (#872)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-11-29 20:09:26 +08:00
Gaius 9fd770ffab
feat: add cache store for proxy (#870)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-11-28 22:27:09 +08:00
Gaius 62c62f7ec6
feat: add sse4.2 target feature for building (#867)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-11-26 18:07:50 +08:00
Gaius 6762de4d4f
feat: add tonic-reflection sever error for ClientError (#797)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-10-24 11:02:12 +08:00
Gaius e396706adf
feat: add basic auth for HTTP proxy (#785)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-10-18 19:11:19 +08:00
Gaius 88880e89aa
feat: add ServerTlsConfig and ClientTlsConfig for upload service (#780)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-10-15 22:29:42 +08:00
Lzzzt 6e26222e79
test: add unit tests for dragonfly-backend::http (#770)
Signed-off-by: Lzzzt <liuzitao0123@gmail.com>
2024-10-15 10:35:29 +08:00
Gaius 9d1ad9c76c
feat: add PersistentCacheTask and StandardTask for scheduler
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-09-29 12:06:38 +08:00
PoloDyBala a0bc93c69a
feat(scheduler): add automatic scheduler switching feature (#591)
Signed-off-by: yuancr <2637554776@qq.com>
2024-09-29 12:01:16 +08:00
Gaius e2209a8e61
refactor: change comments to rust style (#742)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-09-20 20:15:51 +08:00
Gaius e7f7c50fa4
feat: calculate piece length by file length (#661)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-08-12 21:09:10 +08:00
dependabot[bot] 434a395493
chore(deps): Bump libloading from 0.8.4 to 0.8.5 (#634)
Bumps [libloading](https://github.com/nagisa/rust_libloading) from 0.8.4 to 0.8.5.
- [Commits](https://github.com/nagisa/rust_libloading/compare/0.8.4...0.8.5)

---
updated-dependencies:
- dependency-name: libloading
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-30 13:37:59 +08:00
Gaius a5f01bd8ef
feat: add validate_args for dfget and dfcache (#621)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-07-23 15:22:44 +08:00
Lzzzt 155d3ed503
feat: add check before starting the download task (#615)
Signed-off-by: lzzzt <liuzitao0123@gmail.com>
2024-07-23 13:56:13 +08:00
Gaius e676cfb2a6
refactor: download directory from object storage (#614)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-07-19 19:49:49 +08:00
Lzzzt 2247e0f241
feat: implement recursive download for dfget (#613)
Signed-off-by: lzzzt <liuzitao0123@gmail.com>
2024-07-19 14:16:46 +08:00
Gaius 3654a5e253
refactor: oss implements in backend (#592)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-07-15 19:56:00 +08:00
Gaius 918767934c
feat: add import subcommand (#572)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-07-04 21:41:54 +08:00
dependabot[bot] 5c65144899
chore(deps): Bump libloading from 0.8.3 to 0.8.4 (#555)
Bumps [libloading](https://github.com/nagisa/rust_libloading) from 0.8.3 to 0.8.4.
- [Commits](https://github.com/nagisa/rust_libloading/compare/0.8.3...0.8.4)

---
updated-dependencies:
- dependency-name: libloading
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-25 11:58:29 +08:00
Gaius d500a0f6c0
feat: add error log for backend (#522)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-06-05 14:19:17 +08:00
Gaius 468462e9ae
feat: use public backend request, backend response and backend error (#510)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-05-28 23:07:24 +08:00
Chongzhi Deng 806b0f3aca
chore: fix typo (#483)
Signed-off-by: BruceAko <chongzhi@hust.edu.cn>
2024-05-21 10:55:27 +08:00
Gaius e2ad7cc0b6
feat: support plugin feature for backend (#400)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-04-18 11:36:38 +08:00
Gaius 5ee42844ae
feat: optimize error mod (#384)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-04-15 12:21:00 +08:00
AngrySean 7d18b2d7a0
Refactor: extract error module (#375)
Co-authored-by: Xu Jihui <jihui.xjh@bytedance.com>
2024-04-15 11:37:49 +08:00
Gaius 4c0e83da73
feat: when contaienrd use old version, dfinit updates the mirror config (#342)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-03-19 21:24:10 +08:00
Gaius 7781db5429
feat: parse containerd config by toml (#341)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-03-19 12:19:56 +08:00
Gaius a131bb8eb3
refactor: add dragonfly-client-util crate (#295)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-03-05 14:25:41 +08:00
Gaius b8561d3b5f
refactor: add dragonfly-client-core crate (#293)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-03-05 12:23:20 +08:00