-
Notifications
You must be signed in to change notification settings - Fork 37
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
Implement searchv2 #3058
Comments
Caveat: creating a cursor from merged values can be non-trivial if attribute is not included into the requested list. It can be degraded to a simple OID then (complicating continuation somewhat) and in general most of use cases do need attribute values, but still. |
Caveat 2: numeric values might require an additional prefix anyway since we can have |
note: |
Yes, we need to limit changes to this specific feature (expose API as early as possible) and deal with associated meta code (GC and alike) in future. Search is still possible with multiple DBs since results can be merged similar to the way results from different nodes are merged. |
choice is obvious for system fields. For example, owner ID is a string while payload size is an integer for user-defined attributes it is not so obvious. Like here #3058 (comment). In current protocol, there is no way to determine whether user attribute is numeric or not. So, I rly doubt storing them in various formats is legit. But we can resolve this on search query processing. In original search, any non-integer attribute mismatches any numeric query. Do we wanna change this behaviour for SearchV2 somehow? @roman-khimov u also mentioned some special prefix, could u pls elaborate on this thought? |
You can only do this content-based, just like you do this now for old search. The only difference is that the choice is made when processing the object instead of when processing the search request. Special prefix means splitting PREFIXB into B1 and B2 for numeric and string data. |
shouldnt cursor be OID + values of requested attributes to sort/continue in PREFIXC in this case? UPD: seems like no, missed this requirement https://github.com/nspcc-dev/neofs-api/blob/9f1f12866a4742adb7778c51bd632cd240f81262/object/service.proto#L554-L555 |
Is your feature request related to a problem? Please describe.
I'm always frustrated when we don't have an implementation for nspcc-dev/neofs-api#314.
Describe the solution you'd like
The per-container DB should be structured like:
The mechanics is:
Each node does the following:
key>N && key <M
), this can shortcut the search more quickly for numericsDescribe alternatives you've considered
SQL, various other types of DBs. But the scheme above should be sufficient for our primary cases now.
Additional context
#2990, #2757, #2989, nspcc-dev/neofs-api#306
The text was updated successfully, but these errors were encountered: