Commit Graph

44 Commits

Author SHA1 Message Date
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
Gaius 7e595898e5
Fix lint (#244)
* feat: golangci-lint

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

* feat: lint hostIP

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

* feat: golangci-lint

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

* feat: golangci-lint

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

* feat: error check

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

* feat: nil pointer

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

* feat: rename taskID

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

* feat: rename peerID

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

* feat: taskID

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

* feat: licenses

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

* feat: rename

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

* feat: golangci-lint

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

* feat: golangci-lint

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

* feat: golangci-lint

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

* feat: golangci-lint

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

* feat: golangci-lint

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

* feat: golangci-lint

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

* feat: golangci-lint

Signed-off-by: Gaius <gaius.qi@gmail.com>
2023-06-28 17:22:37 +08:00
Jim Ma 6ff264f330
Feature: add disk quota gc for daemon (#215)
* feat: add disk quota gc for daemon

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

* fix: skip marked tasks when check disk quota

Signed-off-by: Jim Ma <majinjing3@gmail.com>
2023-06-28 17:22:36 +08:00
Jim Ma 0af8817c1f
Merge branch main-rc to branch main
Signed-off-by: Jim Ma <majinjing3@gmail.com>

Co-authored-by: 李玉海 <yuhai.lyh@alibaba-inc.com>
Co-authored-by: Gaius <gaius.qi@gmail.com>
Co-authored-by: santong <weipeng.swp@alibaba-inc.com>
Co-authored-by: zuozheng.hzz <zuozheng.hzz@alibaba-inc.com>
Co-authored-by: 加菲 <garfieldhu@aliyun.com>
2023-06-28 17:20:20 +08:00