frostfs-node/pkg
Aleksey Savchuk 147c467151
[#1450] engine: Make Inhume operation handle objects in parallel
Add a worker pool for `Inhume` operation and use it to handle objects
in parallel. Since metabase `Inhume` uses `bbolt.Batch`, handling many
objects one by one may be inefficient.

```
goos: linux
goarch: amd64
pkg: git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/engine
cpu: 12th Gen Intel(R) Core(TM) i5-1235U
                                 │    old.txt    │               new.txt                │
                                 │    sec/op     │    sec/op     vs base                │
InhumeMultipart/objects=1-12         11.45m ± 0%   11.43m ±  0%        ~ (p=0.315 n=10)
InhumeMultipart/objects=10-12       113.94m ± 1%   11.60m ±  0%  -89.82% (p=0.000 n=10)
InhumeMultipart/objects=100-12     1144.08m ± 1%   30.17m ± 12%  -97.36% (p=0.000 n=10)
InhumeMultipart/objects=1000-12    11367.5m ± 0%   265.7m ±  2%  -97.66% (p=0.000 n=10)
InhumeMultipart/objects=10000-12    113.505 ± 0%    2.436 ±  1%  -97.85% (p=0.000 n=10)
geomean                               1.140        76.32m        -93.31%
```

Signed-off-by: Aleksey Savchuk <a.savchuk@yadro.com>
2024-11-15 01:01:55 +03:00
..
ape [#1388] apeSvc: Drop unused and make annotations 2024-09-25 08:55:38 +00:00
core [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
innerring [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
local_object_storage [#1450] engine: Make Inhume operation handle objects in parallel 2024-11-15 01:01:55 +03:00
morph [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
network [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
services [#1437] node: Fix contextcheck linter 2024-11-13 10:36:10 +03:00
tracing [#146] node: Add trace_id to logs 2023-09-27 11:05:27 +03:00
util [#1437] logger: Add caller skip to log original caller position 2024-11-13 10:36:12 +03:00