Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Serve ObjectService.SearchV2 RPC #3111

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

cthulhu-rider
Copy link
Contributor

Copy link

codecov bot commented Feb 7, 2025

Codecov Report

Attention: Patch coverage is 72.30769% with 180 lines in your changes missing coverage. Please review.

Project coverage is 22.93%. Comparing base (5279df2) to head (9ea9553).
Report is 15 commits behind head on master.

Files with missing lines Patch % Lines
pkg/local_object_storage/metabase/metadata.go 70.26% 115 Missing and 53 partials ⚠️
pkg/local_object_storage/metabase/put.go 55.00% 6 Missing and 3 partials ⚠️
pkg/local_object_storage/metabase/containers.go 0.00% 2 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3111      +/-   ##
==========================================
+ Coverage   22.47%   22.93%   +0.46%     
==========================================
  Files         751      751              
  Lines       57804    58721     +917     
==========================================
+ Hits        12991    13470     +479     
- Misses      43929    44310     +381     
- Partials      884      941      +57     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

There is a need to serve `ObjectService.SearchV2` RPC by the SN. In
order not to expand the structure and configuration of the node, the
best place to store metadata is metabase.

Metabases are extended with per-container object metadata buckets. For
each object, following indexes are created:
 - OID;
 - attribute->OID;
 - OID->attribute.

Integers are stored specifically to reach lexicographic comparisons
without decoding.

New `Search` method is provided: it allows to filter out container's
objects and receive specified attributes. Count is also limited, op is
paged via cursor. In other words, the method follows SearchV2 behavior
within single metabase.

Refs #3058.

Signed-off-by: Leonard Lyubich <[email protected]>
Future use-cases:
 - merge results from several shard's metabases;
 - merge results from several SNs.

Refs #3058.

Signed-off-by: Leonard Lyubich <[email protected]>
@cthulhu-rider cthulhu-rider force-pushed the object-searchv2/service branch from ff0ba46 to 9ea9553 Compare February 7, 2025 11:28
WIP

Refs #3058.

Signed-off-by: Leonard Lyubich <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant