Store EC chunk's parent's parent's attributes #76
Labels
No labels
P0
P1
P2
P3
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-api#76
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Is your feature request related to a problem? Please describe.
In FrostFS we can:
And object's attributes are propagated in the following way:
As a result, in a FrostFS node, there's no way to determine the expiration epoch of an expirable regular object. Based on my experience, expirable regular object are rarely used, so this issue hasn't been encountered earlier.
Describe the solution you'd like
I suggest introducing a new filed in the EC header:
Describe alternatives you've considered
I considered keeping the current message structure and storing attributes in the following way:
However, in this case, the restored object will differ from the original one. Please correct me if I'm wrong.
Additional context
Store parent's attributes when splitting a big object into parts:
s.parent = fromObject(s.current)
s.parent.ResetRelations()
s.parent.SetSignature(nil)
s.parent.SetAttributes(s.parAttrs...)
s.parent.SetVersion(&ver)
Store parent's attributes when splitting an object into chunks:
ecParentInfo := objectSDK.ECParentInfo{
ID: parent,
SplitID: obj.SplitID(),
SplitParentID: parentSplitParentID,
Attributes: obj.Attributes(),
}
Discussed with @dstepanov-yadro
The alternative solution doesn't change reconstructed object as I thought before. I will adopt the alternative solution, which will require changes only to the SDK.