metabase: Do not store root info for small objects #1007

Closed
dstepanov-yadro wants to merge 1 commit from dstepanov-yadro/frostfs-node:feat/do_not_store_root_info_for_small_objects into master

Now metabase doesn't store split info for small objects.

But select --root implementation changed: now root-objects search is more complex.

Relates #977

Now metabase doesn't store split info for small objects. But `select --root` implementation changed: now root-objects search is more complex. Relates #977
Owner

So we replace --root with --big-only. How can user to list all objects then (the ones that are accounted for in user metrics)?

So we replace `--root` with `--big-only`. How can user to list all objects then (the ones that are accounted for in `user` metrics)?
dstepanov-yadro force-pushed feat/do_not_store_root_info_for_small_objects from 4baf5a006d to b515b1d107 2024-02-26 15:38:15 +00:00 Compare
dstepanov-yadro force-pushed feat/do_not_store_root_info_for_small_objects from b515b1d107 to 3c6055a0c1 2024-02-26 15:38:34 +00:00 Compare
Author
Member

So we replace --root with --big-only. How can user to list all objects then (the ones that are accounted for in user metrics)?

Fixed

> So we replace `--root` with `--big-only`. How can user to list all objects then (the ones that are accounted for in `user` metrics)? Fixed
dstepanov-yadro requested review from storage-core-committers 2024-02-26 15:51:20 +00:00
dstepanov-yadro requested review from storage-core-developers 2024-02-26 15:51:21 +00:00
fyrchik reviewed 2024-02-26 16:02:47 +00:00
@ -184,0 +199,4 @@
_ = primaryBkt.ForEach(func(objectID, rawObject []byte) error {
obj := objectSDK.New()
if obj.Unmarshal(rawObject) != nil {
Owner

Unmarshaling each object can be very costly, is less expensive check currently possible? (ideally checking whether some key is present).
In theory, we could check field presence from the byte-slice directly, though.

Unmarshaling each object can be very costly, is less expensive check currently possible? (ideally checking whether some key is present). In theory, we could check field presence from the byte-slice directly, though.
Owner

Splitting primary bucket into 2 is also an option.

Splitting primary bucket into 2 is also an option.
Author
Member

Unmarshaling each object can be very costly, is less expensive check currently possible?

I haven't found.
As we have the general way to drop all the indexes I think it is ok to have such search implementation.

> Unmarshaling each object can be very costly, is less expensive check currently possible? I haven't found. As we have the general way to drop all the indexes I think it is ok to have such `search` implementation.
dstepanov-yadro force-pushed feat/do_not_store_root_info_for_small_objects from 3c6055a0c1 to 0e6fe47292 2024-02-27 05:43:56 +00:00 Compare
aarifullin approved these changes 2024-02-27 09:10:11 +00:00
aarifullin approved these changes 2024-02-27 09:10:15 +00:00
Author
Member

Work continues on a new implementation of the metabase. We will perform optimizations within the framework of changing the storage engine.

Work continues on a new implementation of the metabase. We will perform optimizations within the framework of changing the storage engine.
dstepanov-yadro closed this pull request 2024-04-22 09:31:21 +00:00
All checks were successful
DCO action / DCO (pull_request) Successful in 1m58s
Required
Details
Vulncheck / Vulncheck (pull_request) Successful in 3m15s
Required
Details
Build / Build Components (1.21) (pull_request) Successful in 4m5s
Required
Details
Build / Build Components (1.20) (pull_request) Successful in 4m18s
Required
Details
Tests and linters / Staticcheck (pull_request) Successful in 5m33s
Required
Details
Tests and linters / Lint (pull_request) Successful in 6m28s
Required
Details
Tests and linters / Tests (1.20) (pull_request) Successful in 8m21s
Required
Details
Tests and linters / Tests with -race (pull_request) Successful in 8m39s
Required
Details
Tests and linters / Tests (1.21) (pull_request) Successful in 8m50s
Required
Details

Pull request closed

Sign in to join this conversation.
No reviewers
TrueCloudLab/storage-core-committers
No milestone
No project
No assignees
3 participants
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#1007
No description provided.