metabase: Cleanup ListWithCursor() a bit #1692

Closed
fyrchik wants to merge 4 commits from fyrchik/frostfs-node:meta-list-with-cursor into master
Owner
No description provided.
fyrchik added 3 commits 2025-03-20 13:39:00 +00:00
This is not good:
```
BenchmarkListWithCursor/1_item-8                --- FAIL: BenchmarkListWithCursor/1_item-8
    list_test.go:63: error: end of object listing
```

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
metabase: Use bucket cache in ListWithCursor()
Some checks failed
DCO action / DCO (pull_request) Failing after 54s
Vulncheck / Vulncheck (pull_request) Successful in 1m6s
Pre-commit hooks / Pre-commit (pull_request) Successful in 1m35s
Build / Build Components (pull_request) Successful in 2m4s
Tests and linters / gopls check (pull_request) Successful in 3m40s
Tests and linters / Run gofumpt (pull_request) Successful in 4m54s
Tests and linters / Tests (pull_request) Successful in 5m33s
Tests and linters / Tests with -race (pull_request) Successful in 5m37s
Tests and linters / Staticcheck (pull_request) Successful in 5m37s
Tests and linters / Lint (pull_request) Successful in 5m41s
401e379392
No changes in speed, but unified approach:
```
goos: linux
goarch: amd64
pkg: git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/metabase
cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
                           │    master    │                 new                 │
                           │    sec/op    │    sec/op     vs base               │
ListWithCursor/1_item-8      6.067µ ±  8%   5.731µ ± 10%       ~ (p=0.052 n=10)
ListWithCursor/10_items-8    25.40µ ± 11%   26.12µ ± 13%       ~ (p=0.971 n=10)
ListWithCursor/100_items-8   210.7µ ±  9%   203.2µ ±  6%       ~ (p=0.280 n=10)
geomean                      31.90µ         31.22µ        -2.16%

                           │    master    │                  new                  │
                           │     B/op     │     B/op      vs base                 │
ListWithCursor/1_item-8      3.287Ki ± 0%   3.287Ki ± 0%       ~ (p=1.000 n=10) ¹
ListWithCursor/10_items-8    15.63Ki ± 0%   15.62Ki ± 0%       ~ (p=0.328 n=10)
ListWithCursor/100_items-8   138.1Ki ± 0%   138.1Ki ± 0%       ~ (p=0.340 n=10)
geomean                      19.21Ki        19.21Ki       -0.00%
¹ all samples are equal

                           │   master    │                 new                  │
                           │  allocs/op  │  allocs/op   vs base                 │
ListWithCursor/1_item-8       109.0 ± 0%    109.0 ± 0%       ~ (p=1.000 n=10) ¹
ListWithCursor/10_items-8     380.0 ± 0%    380.0 ± 0%       ~ (p=1.000 n=10) ¹
ListWithCursor/100_items-8   3.082k ± 0%   3.082k ± 0%       ~ (p=1.000 n=10) ¹
geomean                       503.5         503.5       +0.00%
¹ all samples are equal
```

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
requested reviews from storage-core-committers, storage-core-developers 2025-03-20 13:39:00 +00:00
fyrchik force-pushed meta-list-with-cursor from 401e379392 to 7422f82675 2025-03-20 13:53:30 +00:00 Compare
acid-ant requested changes 2025-03-20 14:26:46 +00:00
@ -74,3 +71,4 @@
return value
}
if *m == nil {
Member

Looks like this check should be the first.

Looks like this check should be the first.
Author
Owner

No, nil map access is perfectly fine.

No, `nil` map access is perfectly fine.
fyrchik force-pushed meta-list-with-cursor from 7422f82675 to f5c39cc76a 2025-03-20 14:50:37 +00:00 Compare
fyrchik added 1 commit 2025-03-20 14:55:46 +00:00
metabase: Remove useless count variable
Some checks failed
DCO action / DCO (pull_request) Failing after 32s
Vulncheck / Vulncheck (pull_request) Successful in 1m28s
Build / Build Components (pull_request) Successful in 1m51s
Pre-commit hooks / Pre-commit (pull_request) Successful in 1m56s
Tests and linters / gopls check (pull_request) Successful in 4m56s
Tests and linters / Run gofumpt (pull_request) Successful in 5m20s
Tests and linters / Staticcheck (pull_request) Successful in 5m40s
Tests and linters / Lint (pull_request) Successful in 5m51s
Tests and linters / Tests (pull_request) Successful in 6m8s
Tests and linters / Tests with -race (pull_request) Successful in 6m27s
cb5fc2db3d
It is always equal to `len(to)`.

Change-Id: Id7a4c26e9711216b78f96e6b2511efa0773e3471
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
fyrchik force-pushed meta-list-with-cursor from cb5fc2db3d to 72f0d1e24e 2025-03-20 14:56:15 +00:00 Compare
requested reviews from storage-core-committers, storage-core-developers 2025-03-20 15:35:10 +00:00
fyrchik added this to the v0.45.0 milestone 2025-03-20 15:35:15 +00:00
fyrchik added the
refactoring
internal
frostfs-node
labels 2025-03-20 15:35:33 +00:00
fyrchik closed this pull request 2025-03-20 15:39:43 +00:00
All checks were successful
DCO action / DCO (pull_request) Successful in 1m6s
Required
Details
Vulncheck / Vulncheck (pull_request) Successful in 1m24s
Required
Details
Build / Build Components (pull_request) Successful in 2m11s
Required
Details
Pre-commit hooks / Pre-commit (pull_request) Successful in 2m11s
Required
Details
Tests and linters / gopls check (pull_request) Successful in 5m26s
Required
Details
Tests and linters / Staticcheck (pull_request) Successful in 5m54s
Required
Details
Tests and linters / Lint (pull_request) Successful in 6m3s
Required
Details
Tests and linters / Run gofumpt (pull_request) Successful in 5m55s
Required
Details
Tests and linters / Tests (pull_request) Successful in 6m46s
Required
Details
Tests and linters / Tests with -race (pull_request) Successful in 6m57s
Required
Details

Pull request closed

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