metabase: Do not store root info for small objects #1007
No reviewers
TrueCloudLab/storage-core-committers
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 milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: TrueCloudLab/frostfs-node#1007
Loading…
Reference in a new issue
No description provided.
Delete branch "dstepanov-yadro/frostfs-node:feat/do_not_store_root_info_for_small_objects"
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?
Now metabase doesn't store split info for small objects.
But
select --root
implementation changed: now root-objects search is more complex.Relates #977
So we replace
--root
with--big-only
. How can user to list all objects then (the ones that are accounted for inuser
metrics)?4baf5a006d
tob515b1d107
b515b1d107
to3c6055a0c1
Fixed
@ -184,0 +199,4 @@
_ = primaryBkt.ForEach(func(objectID, rawObject []byte) error {
obj := objectSDK.New()
if obj.Unmarshal(rawObject) != nil {
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.
Splitting primary bucket into 2 is also an option.
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.3c6055a0c1
to0e6fe47292
Work continues on a new implementation of the metabase. We will perform optimizations within the framework of changing the storage engine.
Pull request closed