frostfs-node/pkg/local_object_storage/metabase
Evgenii Stratonikov 5073a37930 [#1433] metabase: Optimize Select
For some filters we can scan only a subset of keys instead of checking
each key.

```
name                       old time/op  new time/op  delta
Select/string_equal-8      49.3µs ± 4%  11.0µs ± 4%  -77.68%  (p=0.000 n=10+10)
Select/string_not_equal-8  7.01ms ± 5%  7.06ms ±10%     ~     (p=0.971 n=10+10)
Select/common_prefix-8      118µs ± 6%    79µs ± 5%  -33.04%  (p=0.000 n=10+9)
Select/unknown-8           21.3µs ± 4%   3.2µs ± 4%  -84.88%  (p=0.000 n=10+9)
```

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-06-03 14:25:07 +03:00
..
containers.go [#1454] Upgrade NeoFS SDK Go module with new IDs 2022-06-01 17:41:45 +03:00
containers_test.go [#1454] Upgrade NeoFS SDK Go module with new IDs 2022-06-01 17:41:45 +03:00
control.go [#1318] metabase: Separate buckets with TS and GC marks 2022-04-29 16:38:52 +03:00
control_test.go [#1454] Upgrade NeoFS SDK Go module with new IDs 2022-06-01 17:41:45 +03:00
db.go [#1433] metabase: Optimize Select 2022-06-03 14:25:07 +03:00
db_test.go [#1454] Upgrade NeoFS SDK Go module with new IDs 2022-06-01 17:41:45 +03:00
delete.go [#1418] meta: Do not use pointers as parameters 2022-06-03 07:35:17 +03:00
delete_test.go [#1454] Upgrade NeoFS SDK Go module with new IDs 2022-06-01 17:41:45 +03:00
errors.go [#1247] object: Return NOT_FOUND and ALREADY_REMOVED statuses 2022-03-17 16:34:00 +03:00
exists.go [#1418] meta: Do not use pointers as parameters 2022-06-03 07:35:17 +03:00
exists_test.go [#1454] Upgrade NeoFS SDK Go module with new IDs 2022-06-01 17:41:45 +03:00
get.go [#1418] meta: Do not use pointers as parameters 2022-06-03 07:35:17 +03:00
get_test.go [#1418] meta: Do not use pointers as parameters 2022-06-03 07:35:17 +03:00
graveyard.go [#1418] meta: Do not use pointers as parameters 2022-06-03 07:35:17 +03:00
graveyard_test.go [#1418] meta: Do not use pointers as parameters 2022-06-03 07:35:17 +03:00
index_test.go [#1262] metabase: Remove intermediate allocations in decodeList 2022-03-28 17:08:11 +03:00
info.go [#638] Update to Go 1.16 2021-06-29 13:44:59 +03:00
inhume.go [#1418] meta: Do not use pointers as parameters 2022-06-03 07:35:17 +03:00
inhume_test.go [#1418] meta: Do not use pointers as parameters 2022-06-03 07:35:17 +03:00
iterators.go [#1454] Upgrade NeoFS SDK Go module with new IDs 2022-06-01 17:41:45 +03:00
iterators_test.go [#1418] meta: Do not use pointers as parameters 2022-06-03 07:35:17 +03:00
list.go [#1418] meta: Do not use pointers as parameters 2022-06-03 07:35:17 +03:00
list_test.go [#1454] Upgrade NeoFS SDK Go module with new IDs 2022-06-01 17:41:45 +03:00
lock.go [#1454] Upgrade NeoFS SDK Go module with new IDs 2022-06-01 17:41:45 +03:00
lock_test.go [#1418] meta: Do not use pointers as parameters 2022-06-03 07:35:17 +03:00
movable.go [#1418] meta: Do not use pointers as parameters 2022-06-03 07:35:17 +03:00
movable_test.go [#1214] *: Use single Object type in whole project 2022-03-04 17:45:00 +03:00
put.go [#1418] meta: Do not use pointers as parameters 2022-06-03 07:35:17 +03:00
put_test.go [#1454] Upgrade NeoFS SDK Go module with new IDs 2022-06-01 17:41:45 +03:00
select.go [#1433] metabase: Optimize Select 2022-06-03 14:25:07 +03:00
select_test.go [#1433] metabase: Optimize Select 2022-06-03 14:25:07 +03:00
shard_id.go [#1204] shard: Save ID in the metabase 2022-03-04 17:13:13 +03:00
small.go [#1418] meta: Do not use pointers as parameters 2022-06-03 07:35:17 +03:00
small_test.go [#1214] *: Use single Object type in whole project 2022-03-04 17:45:00 +03:00
util.go [#1454] Upgrade NeoFS SDK Go module with new IDs 2022-06-01 17:41:45 +03:00