Commit Graph

53 Commits

Author SHA1 Message Date
Chlins Zhang d0bfdd4e77
refactor: modernize the code by new features provided by golang stand… (#3963)
refactor: modernize the code by new features provided by golang standard library

Signed-off-by: chlins <chlins.zhang@gmail.com>
2025-04-17 07:48:42 +00:00
Jim Ma b23b18d113
chore: mute some reclaim check log (#3469)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2024-08-28 16:58:17 +08:00
Jim Ma 5cee9010bf
fix: single long task keepalive (#3184)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2024-04-10 22:27:17 +08:00
Jim Ma 48846e2ff6
feat: peer exchange (#3141)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2024-04-09 18:29:57 +08:00
Jim Ma fc53dcf980
feat: optimize reload storage (#3167)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2024-04-08 18:07:10 +08:00
Qi 405ed005bf
Improve the search order for localTaskStore array (#3166)
Signed-off-by: Qi <37133148+aobt@users.noreply.github.com>
2024-04-08 14:32:32 +08:00
Qi 49ac8d52bd
fix index map in storage_manager (#3145)
Signed-off-by: Qi <37133148+aobt@users.noreply.github.com>
2024-03-25 21:07:57 +08:00
Jim Ma db3fa4fcaa
fix: storage buffer size (#3130)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2024-03-16 14:00:08 +08:00
Jim Ma fe033b0564
feat: storage write buffer size (#3127)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2024-03-15 17:51:10 +08:00
Jim Ma 9eb15b218d
fix: overhead gc when DiskGCThreshold not set (#2750)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-09-21 21:04:17 +08:00
Gaius b3f23f71a3
feat: update dy7.io/api to v2 (#2558)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-07-20 23:17:57 +08:00
embroede 8c905d9b8d
feat: enable configuration of some directory modes for dfdaemon (#2340)
Co-authored-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:34:57 +08:00
Jim Ma d7a7e69916
chore: remove unused MarkInvalid in daemon (#2101)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:34:32 +08:00
Eryu Guan 3352deff39
fix: unregister task from scheduler in storage.deleteTask (#2100)
On graceful shutdown we will call forceGC() to delete all cached tasks
if 'keepStorage' is false. And we rely on deleteTask() to delete the
given task from both local storage and scheduler.

But commit 86a6030c8f ("feat: unregister failed task storage (#1717)")
changed MarkReclaim() to MarkInvalid() in deleteTask(), and resulted in
task leak in scheduler.

Fix it by calling MarkReclaim() in deleteTask().

Fixes: 86a6030c8f ("feat: unregister failed task storage (#1717)")

Signed-off-by: Eryu Guan <eguan@linux.alibaba.com>
2023-06-28 17:34:32 +08:00
Gaius 79024c87ca
refactor: parse http range (#2071)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:34:30 +08:00
Jim Ma f581d10208
chore: daemon avoid alway open metadata files (#1823)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:34:09 +08:00
Jim Ma c9bfe9eb08
feat: unregister failed task storage (#1717)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:34:00 +08:00
cuidajun 9dd9bc5c9f
chore: change disk usage debug log format to decimal (#1727)
Signed-off-by: bigerous <cuidajun.cdj@alibaba-inc.com>
2023-06-28 17:34:00 +08:00
Gaius d79f6405ff
feat: replace grpc package with https://github.com/dragonflyoss/api (#1515)
Signed-off-by: Gaius <gaius.qi@gmail.com>
Co-authored-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:41 +08:00
Gaius 3b426d2c54
feat: rename client/clientutil to client/util (#1420)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:33:32 +08:00
Gaius a2511cb945
feat: rewrite interface{} to any (#1419)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:33:32 +08:00
Gaius 0222649b88
feat: update namely/protoc-all image version to 1.47_0 (#1418)
* feat: update namely/protoc-all image version to 1.47_0

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

* feat: generate mock file

Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:33:32 +08:00
Gaius ad36eb64a7
feat: remove github/pkg/errors package (#1416)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:33:31 +08:00
Jim Ma 3a9f160e7a
fix: reuse seed panic (#1319)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:21 +08:00
Jim Ma 823c722c3e
feat: support response header (#1292)
* feat: support response header via ExtendAttribute
* chore: update http pass through header
* chore: update ExtendAttribute in cdn downloader

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:19 +08:00
Eryu Guan 65fa8a1680
feat: define and implement new dfdaemon APIs to make dragonfly2 work as a distributed cache (#1227)
Introduce a new dfcache command which uses dfcache SDK interface to
interactive with dfdaemon and operate on P2P cache system.

For example:
- add a file into cache system
  dfcache import --cid sha256:xxxxxx --tag testtag /path/to/file

- check if a file exists in cache system
  dfcache stat --cid testid --local  # only check local cache
  dfcache stat --cid testid          # check other peers as well

- export/download a file from cache system
  dfcache export --cid testid -O /path/to/output

- delete a file from cache system, both local cache and P2P network
  dfcache delete -i testid -t testtag

Signed-off-by: Gaius <gaius.qi@gmail.com>
Signed-off-by: Eryu Guan <eguan@linux.alibaba.com>

Co-authored-by: Jim Ma <majinjing3@gmail.com>
Co-authored-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:33:13 +08:00
Jim Ma 517ed6c51e
fix: client sync piece panic (#1246)
* fix: client sync piece panic

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

* chore: optimize sync piece log

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

* fix: daemon panic when register fail

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:13 +08:00
Jim Ma 5efbaaed80
fix: client superfluous usage gc (#1243)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:33:13 +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 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 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 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 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
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
guoguodan 3b6966c585
feat: update typo in local_storage.go (#955) 2023-06-28 17:32:51 +08:00
Jim Ma c38bba2612
feat: merge same tasks in daemon (#977)
* feat: merge same tasks in daemon
* test: add tiny file test in daemon
* fix: when validate digest disabled, did not store metadata

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:49 +08:00
Jim Ma a54ae4fae4
feat: add default DiskGCThresholdPercent and ignore it when is 0 (#971)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:49 +08:00
Jim Ma b7f8ad4e20
feat: support disk usage gc in client (#953)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:48 +08:00
Eng Zer Jun f579d3c9ce
refactor: move from io/ioutil to io and os packages (#906)
* chore: run `go fmt ./...`

This commit synchronizes `//go:build` lines with `// +build` lines.

Reference: https://go.googlesource.com/proposal/+/master/design/draft-gobuild.md
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* refactor: move from io/ioutil to io and os packages

The io/ioutil package has been deprecated as of Go 1.16, see
https://golang.org/doc/go1.16#ioutil. This commit replaces the existing
io/ioutil functions with their new definitions in io and os packages.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2023-06-28 17:32:45 +08:00
sunwp 456e776bfd
correct metadata spell (#884)
Signed-off-by: sunwp <244372610@qq.com>
2023-06-28 17:32:42 +08:00
sunwp c1d84fb56d
validate grpc model (#825)
* base validate

Signed-off-by: sunwp <244372610@qq.com>
2023-06-28 17:32:40 +08:00
Jim Ma 9a1b0f207e
chore: optimize client storage gc log (#790)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:35 +08:00
Jim Ma 806f2ef11d
feat: calculate piece metadata digest (#787)
* feat: calculate piece metadata digest
* fix: back source not work in midway
* chore: add partial back source test
* chore: optimize digest log

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:32:35 +08:00
Gaius 6b9b814995
feat: release fd (#668)
* feat: release fd

Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:31:48 +08:00
Jim Ma 777e98784e
feature: export peer.TaskManager for embedding dragonfly in custom binary (#434)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:30:19 +08:00
sunwp 6cce5a9872
Feature/code spec (#336)
* Modify the code according to https://github.com/uber-go/guide/blob/master/style.md

Signed-off-by: santong <weipeng.swp@alibaba-inc.com>
Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:24:44 +08:00
Jim Ma 5b9c3033f8
Support peer task data multiplex (#347)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:23:35 +08:00
Jim Ma a033e5f5be
feature: remove unsafe code in client/daemon/storage (#258)
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:22:38 +08:00
Jim Ma a777c8882c
Fix: use atomic to avoid data race in client (#254)
* fix: use atomic to avoid data race

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

* feature: temporary disable cdnsystem&manager test for CI

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

* feature: update .github/workflows/ci.yaml and codecov.yml

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

* feature: update ratelimiter test

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

* feature: update dynconfig test

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

* fix: ratelimiter and file utils test

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

* fix: ratelimiter and queue test

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

* fix: httputil test

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

* feat: remove httputils

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

Co-authored-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:22:38 +08:00
Jim Ma 59f227abf2
Feature: support basic auth for proxy (#250)
* feature: add basic auth support for proxy

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:22:38 +08:00