mirror of
https://github.com/minio/minio.git
synced 2025-11-07 12:52:58 -05:00
Improve expiration of tiered objects (#18926)
- Use a shared worker pool for all ILM expiry tasks - Free version cleanup executes in a separate goroutine - Add a free version only if removing the remote object fails - Add ILM expiry metrics to the node namespace - Move tier journal tasks to expiryState - Remove unused on-disk journal for tiered objects pending deletion - Distribute expiry tasks across workers such that the expiry of versions of the same object serialized - Ability to resize worker pool without server restart - Make scaling down of expiryState workers' concurrency safe; Thanks @klauspost - Add error logs when expiryState and transition state are not initialized (yet) * metrics: Add missed tier journal entry tasks * Initialize the ILM worker pool after the object layer
This commit is contained in:
committed by
GitHub
parent
325fd80687
commit
a7577da768
@@ -30,6 +30,9 @@ const freeVersion = "free-version"
|
||||
// InitFreeVersion creates a free-version to track the tiered-content of j. If j has
|
||||
// no tiered content, it returns false.
|
||||
func (j xlMetaV2Object) InitFreeVersion(fi FileInfo) (xlMetaV2Version, bool) {
|
||||
if fi.SkipTierFreeVersion() {
|
||||
return xlMetaV2Version{}, false
|
||||
}
|
||||
if status, ok := j.MetaSys[ReservedMetadataPrefixLower+TransitionStatus]; ok && bytes.Equal(status, []byte(lifecycle.TransitionComplete)) {
|
||||
vID, err := uuid.Parse(fi.TierFreeVersionID())
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user