WIP: metabase: Add missing expiration epoch for object stored with EC #1585
No reviewers
TrueCloudLab/storage-core-committers
TrueCloudLab/storage-core-developers
Labels
No labels
P0
P1
P2
P3
badger
frostfs-adm
frostfs-cli
frostfs-ir
frostfs-lens
frostfs-node
good first issue
triage
Infrastructure
blocked
bug
config
discussion
documentation
duplicate
enhancement
go
help wanted
internal
invalid
kludge
observability
perfomance
question
refactoring
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: TrueCloudLab/frostfs-node#1585
Loading…
Reference in a new issue
No description provided.
Delete branch "a-savchuk/frostfs-node:exp-epoch-for-object-with-ec"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Suppose there's a complex object stored with EC. It's divided into parts, and these parts are further divided into chunks, except for the linking object. The chunks and linking object are stored in the metabase.
An expiration epoch of the original object should be stored in the expired objects index. In the described scenario, there's no way to determine the expiration epoch of the object from its chunks because a chunk's parent is a part of the original object, not the original object itself. However, the epoch can be determined from the linking object.
Previously, whether the epoch was stored or not depended on the order in which the chunks and linking object were written. Now it's fixed.
The absense of the expiration epoch prevented the GC from deleting this object upon its expiration.
31bd31579a
tod4ff44ef83
This fix is for complex objects with EC only. Simple objects with EC need a fix as well, but it may take some time.
WIP: metabase: Add missing expiration epoch for object stored with ECto metabase: Add missing expiration epoch for object stored with ECmetabase: Add missing expiration epoch for object stored with ECto WIP: metabase: Add missing expiration epoch for object stored with ECView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.