Make complex object stored with EC expire correctly #1602
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 project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: TrueCloudLab/frostfs-node#1602
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "a-savchuk/frostfs-node:ec-object-expiration"
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?
Adopt changes introduced in TrueCloudLab/frostfs-sdk-go#319
5fc53e9b06
tof660e8bc69
@ -261,2 +261,3 @@
func putExpirationEpoch(tx *bbolt.Tx, obj *objectSDK.Object, addr oid.Address, objKey []byte) error {
if expEpoch, ok := hasExpirationEpoch(obj); ok {
attributes := obj.Attributes()
if ech := obj.ECHeader(); ech != nil {
This complicates metabase: EC object MAY produce additional indexes, but we should clearly delimit it and not have custom logic for common object fields. There is a set of operations I should be able to perform on any type of objects.
After recent changes in PR in SDK, every object part and chunk has expiration epoch. This solution works well, I think I can't have unit test for this but I checked it in dev-env
@ -452,0 +463,4 @@
return extractExpirationEpoch(attributes)
}
func extractExpirationEpoch(attributes []objectSDK.Attribute) (uint64, bool) {
Without consulting with the SDK PR: I don't like this logic, we now have 2 functions that extract expiration epoch, it is very easy to use the wrong one. It is not obvious which one I should use in any given situation.
This changes are not needed anymore, removed
f660e8bc69
toe28586d027
e28586d027
to30d4530b6d
WIP: metabase: Mark chunk's parent as expirable instead of chunk itselfto WIP: Make complex object stored with EC expire correctly30d4530b6d
to9c4c5a5262
WIP: Make complex object stored with EC expire correctlyto Make complex object stored with EC expire correctly