Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve GC routine #2866

Open
carpawell opened this issue Jun 10, 2024 · 1 comment
Open

Improve GC routine #2866

carpawell opened this issue Jun 10, 2024 · 1 comment
Labels
enhancement Improving existing functionality I4 No visible changes S2 Regular significance U3 Regular

Comments

@carpawell
Copy link
Member

Is your feature request related to a problem? Please describe.

GC may be more intelligent. Currently, it only works with clear wording like "a user deleted an object" or "epoch N happened, so every object whose expiration is <= N-1 should expire too". But sometimes real garbage may appear in the storages (bad migration, shard error, bugs, configuration changes, missed meta change notification etc), and some background routine may try to monitor it.

Describe the solution you'd like

If some object without a container, lost object part, or some other object that should not exist is found, it should be GC-ed. A background routine fits well for this.

Describe alternatives you've considered

Some explicit external command like vacuum in the control service.

Additional context

#2858 happened and there is a fix for it :#2863. However, it does not solve the problem fully: if some parts are stored and no parent header is found, it will never be GC-ed now.
It should be solved carefully. Situations, when a node believes that there is no object in the network, should be proved.

@roman-khimov
Copy link
Member

We have replicator that goes over the object list all the time, it can notice inconsistencies, it can invalidate objects (trying to replicate them is an error anyway).

@roman-khimov roman-khimov added enhancement Improving existing functionality U3 Regular S2 Regular significance I4 No visible changes labels Jun 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improving existing functionality I4 No visible changes S2 Regular significance U3 Regular
Projects
None yet
Development

No branches or pull requests

2 participants