Commit Graph

164 Commits

Author SHA1 Message Date
Jim Ma 73c5e3a575
fix: sync pieces hang (#1221)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:11 +08:00
Jim Ma 76eff082cb
feat: add back source fail metric in client (#1214)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:10 +08:00
Jim Ma 60a1d9e53e
chore: print client stream task error log (#1210)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:10 +08:00
Jim Ma a413dc4bdd
chore: report client back source error (#1209)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:10 +08:00
Gaius 2bcdba6401
feat: add grpc health interface (#1195)
* feat: add grpc health interface

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

* feat: add dfdaemon upload server healthy interface

Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:33:09 +08:00
Jim Ma d45bffea40
fix: client miss failed piece (#1194)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:09 +08:00
Gaius 1939ceff8f
refactor: scheduler end and begin of piece (#1189)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:33:09 +08:00
Jim Ma 9f4b86cb2f
fix: client break error (#1190)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:08 +08:00
Jim Ma 42046c0845
chore: optimize stream peer task (#1186)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:08 +08:00
sunwp bab1ddec60
Fix client initialization trivial things (#1176)
Signed-off-by: sunwp <244372610@qq.com>
2023-06-28 17:33:08 +08:00
Gaius 04bd2ea383
feat: scheduler addresses log (#1183)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:33:08 +08:00
Jim Ma d3c36f26ce
chore: always fallback to legacy get pieces (#1180)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:08 +08:00
sunwp 104e8359a9
fix daemon cannot exit after alivetime (#1177)
Signed-off-by: sunwp <244372610@qq.com>
2023-06-28 17:33:07 +08:00
Gaius 21d219175f
feat: dfdaemon get available scheduler addresses in the same cluster (#1178)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:33:07 +08:00
Jim Ma 10da5fa0d6
feat: implement grpc client side sync pieces (#1167)
* feat: implement grpc client side sync pieces

Signed-off-by: Jim Ma <majinjing3@gmail.com>

* fix: client unit test

Signed-off-by: Jim Ma <majinjing3@gmail.com>

* chore: report sync piece error

Signed-off-by: Jim Ma <majinjing3@gmail.com>

* chore: optimize pieceTaskSyncManager cancel

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:07 +08:00
yxxhero 7446cf45fa
feat: replace time.Now().Sub by time.Since (#1173)
Signed-off-by: yxxhero <aiopsclub@163.com>
2023-06-28 17:33:07 +08:00
Jim Ma 42e662d8b3
fix: subscriber data race (#1169)
* fix: subscriber data race

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:06 +08:00
Jim Ma 98e95e693c
feat: implement bidirectional fetch pieces (#1165)
* feat: implement grpc server side sync pieces

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:06 +08:00
Jim Ma 010887ab66
feat: optimize proxy performance (#1137)
* feat: optimize back source trace and logic

Signed-off-by: Jim Ma <majinjing3@gmail.com>

* chore: fix keepalive performance

Signed-off-by: Jim Ma <majinjing3@gmail.com>

* chore: optimize generate peer id and transport performance

Signed-off-by: Jim Ma <majinjing3@gmail.com>

* fix: io.Copy call superfluous sendfile, then increase network latency

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:05 +08:00
Gaius 98e23e4be7
feat: update otel package version and fix otelgrpc goroutine leak (#1141)
* feat: update otel version

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

* fix: grpc.WithInsecure is deprecated

Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:33:03 +08:00
Jim Ma 84eaf402c3
chore: fast back source when get pieces task failed (#1123)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:02 +08:00
Jim Ma ebc1aff720
feat: support health probe in daemon (#1120)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:01 +08:00
Jim Ma 977f095c49
chore: optimize reuse logic (#1110)
* chore: optimize reuse logic

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:01 +08:00
Jim Ma ac4c4bb912
feat: reuse partial completed task (#1107)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:00 +08:00
Jim Ma fc2b1f8187
chore: init url meta in rpc server (#1098)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:59 +08:00
Jim Ma 4597f74283
feat: merge ranged request storage into parent (#1078)
* feat: merge ranged request storage into parent

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:59 +08:00
Jim Ma 5478414751
feat: add prefetch metric in client (#1068)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:58 +08:00
Gaius 76dbfcfc5c
feat: add client request log (#1069)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:32:57 +08:00
Jim Ma 6fc2bb4de2
chore: add content length for fast stream peer task (#1061)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:56 +08:00
Jim Ma f80c75efdb
Feature: prefetch ranged requests (#1053)
1. implement prefetch ranged requests
2. optimize exact http code in transport
3. simplify reuse peer task logic
4. reuse peer task for ranged request size error
5. fix data race for peer task storage

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:56 +08:00
Jim Ma 75ce151d3f
chore: optimize https pass through (#1054)
* chore: optimize https pass through

Signed-off-by: Jim Ma <majinjing3@gmail.com>

* chore: update var name

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:56 +08:00
sunwp 25832aa3d2
cdn rpc server test (#1020)
Signed-off-by: sunwp <244372610@qq.com>
2023-06-28 17:32:55 +08:00
Jim Ma 5027f9c998
chore: use buildx to build docker images in e2e (#1018)
* chore: build images concurrency

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:54 +08:00
Jim Ma 23021dea4b
chore: add piece task metrics in daemon (#1030)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:54 +08:00
Jim Ma 621e52e9f1
chore: update outdated log (#1028)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:53 +08:00
Jim Ma 6e636b1125
chore: optimize metrics and trace in daemon (#1022)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:53 +08:00
Jim Ma a0049b17ae
chore: register to scheduler after updated running tasks (#1016)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:53 +08:00
Jim Ma e9f824e0a7
chore: optimize defer and test (#1010)
* chore: optimize defer and test

Signed-off-by: Jim Ma <majinjing3@gmail.com>

* fix: random test failed

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:53 +08:00
sunwp 537667cfaa
add cdn totalpieces (#1014)
Signed-off-by: sunwp <244372610@qq.com>
2023-06-28 17:32:52 +08:00
Jim Ma c00f07c2de
Extract storage driver into peer tasks (#998)
* chore: extract storage instead load every time

Signed-off-by: Jim Ma <majinjing3@gmail.com>

* fix: test

Signed-off-by: Jim Ma <majinjing3@gmail.com>

* fix: gofmt

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:52 +08:00
Gaius 43d769b0b4
fix: register task with size scope (#1003)
* feat: register task with size scope

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

* test: fix peer manager data race

Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:32:52 +08:00
Gaius 5479b3a53e
feat: stream send error code (#986)
* feat: change task and peer ttl (#984)

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

* feat: send error code

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

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

* feat: add retry interval

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

* feat: dfdaemon report successful piece before end of piece

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

* feat: update submodule version

Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:32:51 +08:00
Jim Ma 0c03af1979
fix: when scheduler is not available, replace the scheduler client (#999)
* fix: when scheduler is not available, just replace the scheduler client in single peer task

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:51 +08:00
Jim Ma c3951e0cb3
feat: trace https proxy request (#996)
* feat: trace https proxy request

Signed-off-by: Jim Ma <majinjing3@gmail.com>

* fix: daemon test

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:51 +08:00
Jim Ma c87be98799
chore: parameterize tests in peer task (#994)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:51 +08:00
Jim Ma 88278be464
fix: total pieces count not set cause digest invalid (#992)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:51 +08:00
Jim Ma 6f76c74838
chore: clarify daemon interface (#991)
1. Rename FilePeerTask to FileTask.
2. Rename StreamPeerTask to StreamTask.
3. Extract pulling piece task logic to pieceTaskPoller.

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:51 +08:00
guoguodan 3b6966c585
feat: update typo in local_storage.go (#955) 2023-06-28 17:32:51 +08:00
Jim Ma 17ff9c17be
fix: send piece result error not handled (#987)
* fix: send piece result error not handled
* chore: optimize daemon cancel logic
* chore: remove redundant log and ctx.Done check
* chore: handle piece download with 404 status

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:50 +08:00
Jim Ma cb36b79dd1
feat: when write last piece, generate digest (#982)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:50 +08:00