goharbor / harbor

An open source trusted cloud native registry project that stores, signs, and scans content.
https://goharbor.io
Apache License 2.0
24.16k stars 4.76k forks source link

GC enhancement engineering story #16010

Open wy65701436 opened 3 years ago

wy65701436 commented 3 years ago

Since Harbor introduces the online GC in v2.1, there are several issues that reported from community about online GC. To provide better use experience, it should do some enhancements on the garbage collection.

  1. backends #15469
  2. GC fails when manifest not found #15822
  1. GC fails after deleting many tags from same repository #15807
  2. [GC performance] The performance of v2 manifest deletion is not good in S3 environment #12948
  1. GC fails with "invalid checksum digest format" from registry when deleting manifests #15970
  1. the size was released
  2. artifact count was removed.
wy65701436 commented 2 years ago

As the failure skip has already merged in, and we should keep parallel deletion PR since we should carafully modify GC code.

For the performance issue, we can move it to 2.6 to discuss more details.

Grounz commented 2 years ago

Hi,

If i've well understood, we have to wait a 2.6.0 harbor release for fix all above issue ?

wy65701436 commented 2 years ago

thanks @Grounz for the reminding, we actually did some enhancement on GC. And as for the parallel deletion, I'd like to gather more user data, then we can decide what to do next.

github-actions[bot] commented 2 years ago

This issue is being marked stale due to a period of inactivity. If this issue is still relevant, please comment or remove the stale label. Otherwise, this issue will close in 30 days.

dkulchinsky commented 2 years ago

still relevant

github-actions[bot] commented 2 years ago

This issue is being marked stale due to a period of inactivity. If this issue is still relevant, please comment or remove the stale label. Otherwise, this issue will close in 30 days.

dkulchinsky commented 2 years ago

still relevant

github-actions[bot] commented 2 years ago

This issue is being marked stale due to a period of inactivity. If this issue is still relevant, please comment or remove the stale label. Otherwise, this issue will close in 30 days.

sidewinder12s commented 2 years ago

Not stale

github-actions[bot] commented 1 year ago

This issue is being marked stale due to a period of inactivity. If this issue is still relevant, please comment or remove the stale label. Otherwise, this issue will close in 30 days.

dkulchinsky commented 1 year ago

definitely not stale

github-actions[bot] commented 1 year ago

This issue is being marked stale due to a period of inactivity. If this issue is still relevant, please comment or remove the stale label. Otherwise, this issue will close in 30 days.

dkulchinsky commented 1 year ago

not stale

dkulchinsky commented 1 year ago

@wy65701436 I believe https://github.com/goharbor/harbor/issues/18381 should be added to the list above.

Current behaviour when GC encounters an unknown manifest or blob (404 from registry) is to keep retrying until retry timeout reached, the manifest/blob is also not removed from artifact_thrash so it will retry again and again to delete non-existent objects every time GC runs.

Since the goal is to delete the blobs, if they are already gone - then GC should just remove it from artifact_thrash and proceed.

github-actions[bot] commented 1 year ago

This issue is being marked stale due to a period of inactivity. If this issue is still relevant, please comment or remove the stale label. Otherwise, this issue will close in 30 days.

sidewinder12s commented 1 year ago

Not stale

wy65701436 commented 1 year ago

Multiple deletion has been merged, and it will be in the v2.9.

github-actions[bot] commented 1 year ago

This issue is being marked stale due to a period of inactivity. If this issue is still relevant, please comment or remove the stale label. Otherwise, this issue will close in 30 days.

dkulchinsky commented 1 year ago

not stale

github-actions[bot] commented 11 months ago

This issue is being marked stale due to a period of inactivity. If this issue is still relevant, please comment or remove the stale label. Otherwise, this issue will close in 30 days.

dkulchinsky commented 11 months ago

not stale

github-actions[bot] commented 9 months ago

This issue is being marked stale due to a period of inactivity. If this issue is still relevant, please comment or remove the stale label. Otherwise, this issue will close in 30 days.

dkulchinsky commented 9 months ago

not stale

github-actions[bot] commented 7 months ago

This issue is being marked stale due to a period of inactivity. If this issue is still relevant, please comment or remove the stale label. Otherwise, this issue will close in 30 days.

dkulchinsky commented 7 months ago

not stale

github-actions[bot] commented 5 months ago

This issue is being marked stale due to a period of inactivity. If this issue is still relevant, please comment or remove the stale label. Otherwise, this issue will close in 30 days.

sidewinder12s commented 5 months ago

no stale

github-actions[bot] commented 3 months ago

This issue is being marked stale due to a period of inactivity. If this issue is still relevant, please comment or remove the stale label. Otherwise, this issue will close in 30 days.

dkulchinsky commented 3 months ago

not stale

github-actions[bot] commented 1 month ago

This issue is being marked stale due to a period of inactivity. If this issue is still relevant, please comment or remove the stale label. Otherwise, this issue will close in 30 days.

dkulchinsky commented 1 month ago

not stale