You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 2, 2023. It is now read-only.
An easy to implement alternative would be to rotate s3 buckets, by having older buckets read-only and only upload to the latest one. This should not be the end goal but at least this is better having no gc, which makes the project not really usable without infinite storage.
There's multiple layers of GC here, starting from the bottom to the top:
Garbage Collection of unreferenced Chunks
To do this, we need to assemble the list of all referred chunks in all caibx files in the store.
Chunks that are not part of that list, but that exist in the chunk store can be safely removed.
Garbage collection of Narfiles
To do this, we need to assemble the list of all Narfiles referred in all Narinfo files.
Narfiles that are not referred in any Narinfo file can be safely removed.
Removal of Narinfo files
We can only remove Narinfo files that are not referred by any other Narinfo file.
We can start with files that are not referred by any other Narinfo file, check their last-access time, if it's too old, remove, and add all References to the next iteration (so we slowly walk our way up).
Asking the "referred by" question, as well as tracking access times requires some sort of database (so this is something for #9).
--
A locally deployed "cache" would probably not need to do the complicated "safe Narinfo removal", if we silently fetch the Narinfo again if it's requested.
There should be a way to Remove castr chunks that are not referenced by any of the caibx.
The text was updated successfully, but these errors were encountered: