Commit Graph

83 Commits

Author SHA1 Message Date
fu220 61d686b267 merge the local_only feature from PR#513 2025-07-23 07:11:02 +00:00
Gaius c619a3c8ac
feat: local_only specifies whether to query task information from local client only (#513)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-07-23 11:53:20 +08:00
fu220 8a5885e249 # Description
This pull request introduces APIs for the new Cache Task mechanism, enabling support for memory cache operations. Additionally, by refactoring the Download model and removing the load_to_cache field, the Task component now focuses exclusively on disk I/O operations, while the Cache Task handles memory cache operations. Finally, the version number of the dragonfly-api package has been incremented.

## Key Changes

### common.proto
- Added a new enum type Cache to TaskType to identify CacheTask.
- Introduced a new structure CachePeer to represent peers handling cache tasks.
- Added a new structure CacheTask to define metadata for cache tasks.
- Removed the load_to_cache field from the Download structure, as Tasks will no longer handle cache operations.

### dfdaemon.proto
- Added three RPC calls (DownloadCacheTask, StatCacheTask, DeleteCacheTask) to the DfdaemonUpload and DfdaemonDownload services for cache task management.
- Added two RPC calls (SyncCachePieces, DownloadCachePiece) to the DfdaemonUpload service for cache piece synchronization.
- Introduced 9 new message types to support requests and responses for CacheTask downloads.

### scheduler.proto
- Added five RPC calls to the Scheduler service: AnnounceCachePeer, StatCachePeer, DeleteCachePeer for cache peer management. StatCacheTask, DeleteCacheTask for cache task management.
- Introduced 16 new message types to cover the full lifecycle state transitions of cache tasks.

## Version Update
- Incremented the version of the dragonfly-api package from 2.1.47 to 2.1.48 in Cargo.toml to reflect the new changes.

## Related Issue

## Motivation and Context
- Separation of Responsibilities: Tasks now focus exclusively on disk I/O operations, while CacheTask independently handles memory cache management.

Signed-off-by: fu220 <2863318196@qq.com>
2025-07-22 09:52:58 +00:00
Gaius 8165c4bff1
feat: remove remote_ip in DownloadPersistentCachePieceRequest
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-07-22 14:24:43 +08:00
Gaius 71e4d8083f
feat: add remote ip for request (#511)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-07-22 13:02:08 +08:00
Gaius be780d75c1
feat: add remote ip for request (#510)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-07-21 17:28:46 +08:00
Gaius 928e93e8fe
feat: update ListTaskEntriesResponse by removing unused fields (#508)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-07-16 19:19:03 +08:00
Gaius 20d9c4bc90
feat: add ListTaskEntries for downloading directory (#505)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-07-08 11:45:19 +08:00
Gaius b3635340f7
feat: add digest for download task and supports CRC32, SHA256, and SHA512 algorithms (#502)
feat: add digest for download task and supports CRC32, SHA256, and SHA512 algorithms.

Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-06-27 12:26:56 +08:00
Gaius 07d2017a8a
feat: add content_for_calculating_task_id for UploadPersistentCacheTaskRequest (#486)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-04-24 18:03:20 +08:00
Gaius e264b50709
feat: add force_hard_link for DownloadPersistentCacheTaskRequest (#475)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-03-28 15:35:55 +08:00
Gaius b7701531cf
feat: add ExchangeIBVerbsQueuePairEndpoint for DfdaemonUpload (#474)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-03-25 18:34:27 +08:00
Gaius 6bd235200f
feat: add IbVerbsConnection service to support connection between ibverbs peers (#473)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-03-24 20:16:07 +08:00
Gaius be1ca95b4c
feat: remove piece_length in Task (#466)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-02-26 11:43:43 +08:00
Gaius b040351547
feat: add validation for piece_length (#465)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-02-24 15:52:00 +08:00
Gaius ff110f324b
feat: add piece_length for Persistent Cache Task (#464)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-02-24 12:26:26 +08:00
Gaius 9bee47043a
feat: add digest for DownloadPersistentCachePieceResponse (#460)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-02-14 11:04:22 +08:00
KennyMcCormick ff1adb1882
add digest in DownloadPieceResponse (#457)
Signed-off-by: cormick <cormick1080@gmail.com>
2025-02-12 11:22:36 +08:00
Gaius 45c2817e5e
feat: add task_id for UploadPersistentCacheTask
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-01-26 20:21:14 +08:00
Gaius c6f625f3ad
feat: add task_id for UpdatePersistentCacheTask
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-01-26 19:48:49 +08:00
Gaius c8e0b2526f
feat: add UpdatePersistentCacheTask api
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-01-26 19:06:56 +08:00
Gaius 572faaa58f
feat: add is_replicated for DownloadPersistentCacheTaskRequest
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-01-26 18:08:27 +08:00
Gaius 05b74d50e3
feat: remove update_persistent_cache_task api (#451)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-01-24 17:52:18 +08:00
Gaius c7f8c2a600
feat: add UpdatePersistentCacheTask for setting the value of persistent (#449)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-01-21 22:14:01 +08:00
Gaius 161f9d810f
feat: add DownloadPersistentCachePiece and SyncPersistentCachePieces api (#447)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-01-20 12:08:33 +08:00
Gaius 86b994e4ae
feat: remove timeout from PersistentCacheTask (#444)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-01-17 15:27:13 +08:00
Gaius 352bcc2611
feat: set digest to optional for persistent cache task
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-01-15 14:15:43 +08:00
Gaius 76b2eac2d0
feat: add ReadPersistentCacheTask and WritePersistentCacheTask message (#441)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-01-15 12:14:58 +08:00
Gaius 502a8fbe6e
feat: set output_path to optional and add need_piece_content for downloading persistent cache (#435)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-01-02 15:51:29 +08:00
baowj 190d05d9bf
feat: add method SyncHost to service DfdaemonUpload (#431)
Signed-off-by: baowj <bwj_678@qq.com>
2024-12-31 16:48:34 +08:00
Gaius 28a7989601
feat: rename cache task to persistent cache task (#394)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-09-26 15:34:55 +08:00
Gaius 5bd847f0a4
feat: remove piece length field in download request (#368)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-08-12 15:53:15 +08:00
Gaius 7b5ecb7b15
feat: add optional for piece-length (#367)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-08-12 14:40:04 +08:00
Gaius a7ca1ad9ad
feat: add content_length to DownloadCacheTaskStartedResponse (#355)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-07-17 21:49:15 +08:00
Gaius 10e977c133
feat: remove host_id in DownloadCacheTaskRequest (#354)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-07-17 21:39:45 +08:00
Gaius 7d88b1c21b
feat: add persistent field to DownloadCacheTaskRequest (#329)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-06-19 21:26:29 +08:00
Gaius 183280e924
fix: ttl validation format
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-06-18 14:45:53 +08:00
Gaius 7beb7a448f
feat: rename DownloadTask message to Download (#324)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-06-17 15:07:40 +08:00
Gaius 39fa1f1591
feat: add cache task proto (#323)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-06-17 14:54:30 +08:00
Gaius 370d97c837
feat: add host id to SyncPiecesRequest and DownloadPieceRequest (#321)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-06-05 17:03:33 +08:00
Gaius 9f7fd897b8
feat: change TriggerDownloadTask to DownloadTask with stream (#302)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-04-16 20:00:32 +08:00
Gaius 6bb1bedc70
feat: add error details to api (#283)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-02-28 12:42:22 +08:00
Gaius 88ad05325e
fix: rename download_task_failed_request to download_task_failed_resp… (#282)
fix: rename download_task_failed_request to download_task_failed_response

Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-02-27 20:34:22 +08:00
Gaius 9a73b42a15
feat: response http code and status (#280)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-02-27 14:21:37 +08:00
Gaius 4ca58f1c92
feat: replace LeaveHostRequest with empty (#271)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-02-06 22:24:03 +08:00
Gaius b9e871c8cc
feat: add leave host to dfdaemon (#270)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-02-06 22:09:54 +08:00
Gaius 54f7272979
feat: remove DownloadTaskFinishedResponse in DownloadTask (#268)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-01-30 21:02:52 +08:00
Gaius ace20e5419
feat: add interested piece metadates to DownloadTaskStartedResponse (#267)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-01-30 14:26:42 +08:00
Gaius 758ec4e058
feat: add optional range to DownloadTaskStartedResponse message (#266)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-01-30 13:32:11 +08:00
Gaius 6f6b2a8d7a
feat: rename request to response in DownloadTaskResponse (#265)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2024-01-29 20:19:02 +08:00