WIP: metabase: Add missing expiration epoch for object stored with EC #1585

Closed
a-savchuk wants to merge 1 commit from a-savchuk:exp-epoch-for-object-with-ec into master
Member

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.

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.
Author
Member

This fix is for complex objects with EC only. Simple objects with EC need a fix as well, but it may take some time.

This fix is for _complex_ objects with EC only. Simple objects with EC need a fix as well, but it may take some time.
a-savchuk changed title from WIP: metabase: Add missing expiration epoch for object stored with EC to metabase: Add missing expiration epoch for object stored with EC 2024-12-27 12:55:49 +00:00
requested reviews from storage-core-committers, storage-core-developers 2024-12-27 12:55:51 +00:00
a-savchuk changed title from metabase: Add missing expiration epoch for object stored with EC to WIP: metabase: Add missing expiration epoch for object stored with EC 2024-12-27 13:36:55 +00:00
Author
Member

Closed in favor of #1602

Closed in favor of https://git.frostfs.info/TrueCloudLab/frostfs-node/pulls/1602
a-savchuk deleted branch exp-epoch-for-object-with-ec 2025-02-10 06:31:10 +00:00
All checks were successful
DCO action / DCO (pull_request) Successful in 17m11s
Required
Details
Pre-commit hooks / Pre-commit (pull_request) Successful in 18m42s
Required
Details
Vulncheck / Vulncheck (pull_request) Successful in 19m49s
Required
Details
Tests and linters / Run gofumpt (pull_request) Successful in 20m25s
Required
Details
Tests and linters / Tests (pull_request) Successful in 20m34s
Required
Details
Build / Build Components (pull_request) Successful in 21m8s
Required
Details
Tests and linters / Lint (pull_request) Successful in 21m11s
Required
Details
Tests and linters / Tests with -race (pull_request) Successful in 21m22s
Required
Details
Tests and linters / Staticcheck (pull_request) Successful in 21m31s
Required
Details
Tests and linters / gopls check (pull_request) Successful in 22m18s
Required
Details

Pull request closed

Sign in to join this conversation.
No reviewers
TrueCloudLab/storage-core-committers
TrueCloudLab/storage-core-developers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: TrueCloudLab/frostfs-node#1585
No description provided.