frostfs-node/pkg/local_object_storage/metabase
Aleksey Savchuk d4ff44ef83
[#1585] metabase: Add missing expiration epoch for object stored with EC
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.

Signed-off-by: Aleksey Savchuk <a.savchuk@yadro.com>
2024-12-27 15:31:01 +03:00
..
children.go [#772] node: Apply gofumpt 2023-10-31 17:03:03 +03:00
containers.go [#373] metabase: Add metrics 2023-06-21 15:13:26 +03:00
containers_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
control.go [#1568] storage: Remove "could not/can't/failed to" from error messages 2024-12-18 15:52:26 +00:00
control_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
counter.go [#1568] storage: Remove "could not/can't/failed to" from error messages 2024-12-18 15:52:26 +00:00
counter_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
db.go [#1437] node: Use ctx for logging 2024-11-13 10:36:07 +03:00
db_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
delete.go [#1568] storage: Remove "could not/can't/failed to" from error messages 2024-12-18 15:52:26 +00:00
delete_ec_test.go [#1493] metabase: Merge Inhume() and DropGraves() for tombstones 2024-11-14 06:47:04 +00:00
delete_meta_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
delete_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
errors.go [#481] Update frostfs-sdk-go and error pointer receivers 2023-08-09 10:26:53 +00:00
exists.go [#1568] storage: Remove "could not/can't/failed to" from error messages 2024-12-18 15:52:26 +00:00
exists_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
expired.go [#1323] metabase: Add expiration epoch buckets 2024-08-22 08:21:40 +00:00
expired_test.go [#1585] metabase: Add missing expiration epoch for object stored with EC 2024-12-27 15:31:01 +03:00
generic_test.go [#xx] Avoid manual management of files in tests 2023-08-14 14:01:39 +03:00
get.go [#1568] storage: Remove "could not/can't/failed to" from error messages 2024-12-18 15:52:26 +00:00
get_test.go [#1510] metabase/test: Fix BenchmarkGet 2024-12-13 13:18:43 +03:00
graveyard.go [#1568] storage: Remove "could not/can't/failed to" from error messages 2024-12-18 15:52:26 +00:00
graveyard_test.go [#1493] metabase: Merge Inhume() and DropGraves() for tombstones 2024-11-14 06:47:04 +00:00
index_test.go [#587] Do not use math/rand.Read 2023-08-09 16:02:44 +03:00
info.go [#2057] meta: Fix concurrent mode changes 2022-11-19 11:01:04 +03:00
inhume.go [#1568] storage: Remove "could not/can't/failed to" from error messages 2024-12-18 15:52:26 +00:00
inhume_ec_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
inhume_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
iterators.go [#1523] metabase: Remove (*DB).IterateCoveredByTombstones 2024-11-29 10:49:24 +00:00
iterators_test.go [#1523] metabase: Remove (*DB).IterateCoveredByTombstones 2024-11-29 10:49:24 +00:00
list.go [#1583] metabase: Skip expired objects in ListWithCursor 2024-12-26 14:39:49 +03:00
list_test.go [#1583] metabase/test: Update TestLisObjectsWithCursor 2024-12-26 14:39:50 +03:00
lock.go [#1555] local_object_storage: Rename method GetLocked -> GetLocks 2024-12-11 15:06:37 +03:00
lock_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
metrics.go [#1121] node: Change mode of shard components 2024-06-05 05:55:24 +00:00
mode.go [#1568] storage: Remove "could not/can't/failed to" from error messages 2024-12-18 15:52:26 +00:00
mode_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
put.go [#1585] metabase: Add missing expiration epoch for object stored with EC 2024-12-27 15:31:01 +03:00
put_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
reset_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
select.go [#1568] storage: Remove "could not/can't/failed to" from error messages 2024-12-18 15:52:26 +00:00
select_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
shard_id.go [#1568] storage: Remove "could not/can't/failed to" from error messages 2024-12-18 15:52:26 +00:00
storage_id.go [#1080] metabase: Add StorageID metric 2024-04-10 10:00:08 +03:00
storage_id_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
upgrade.go [#1568] storage: Remove "could not/can't/failed to" from error messages 2024-12-18 15:52:26 +00:00
upgrade_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
util.go [#1568] storage: Remove "could not/can't/failed to" from error messages 2024-12-18 15:52:26 +00:00
version.go [#1568] storage: Remove "could not/can't/failed to" from error messages 2024-12-18 15:52:26 +00:00
VERSION.md [#1323] metabase: Bump version 2024-08-22 08:21:40 +00:00
version_test.go [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00