object: speed up split streaming#4014
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #4014 +/- ##
==========================================
+ Coverage 26.58% 26.76% +0.18%
==========================================
Files 687 688 +1
Lines 46591 46710 +119
==========================================
+ Hits 12384 12501 +117
+ Misses 33065 33062 -3
- Partials 1142 1147 +5 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
9d6e409 to
aeecac4
Compare
roman-khimov
left a comment
There was a problem hiding this comment.
Do we have any test results from real cluster for this? It looks ok in general, but I'd like to check that it has some real effect.
| exec.statusError = exec.streamChildrenPipelined(len(children), at, !withRng && checkRight, prefetchWindow) | ||
| return | ||
| } | ||
|
|
There was a problem hiding this comment.
What worries me a bit is that everything down below effectively becomes a dead code. Most likely it can be dropped in future.
ad698c7 to
df89b93
Compare
The observed numbers are within the margin of error. Most likely, the change does not show a noticeable improvement in this setup because the potential gain is masked by other, more resource-intensive operations currently dominating the request path. |
d7c1b95 to
8d87a18
Compare
Assemble split objects through a pipeline: while one child streams to the client, up to prefetchWindow-1 others are fetched concurrently, hiding inter-node setup/TTFB latency. Children are still written in order. ``` goos: linux goarch: amd64 pkg: github.com/nspcc-dev/neofs-node/pkg/services/object/get cpu: AMD Ryzen 7 PRO 4750U with Radeon Graphics BenchmarkAssembleSplitObject BenchmarkAssembleSplitObject/window=1 BenchmarkAssembleSplitObject/window=1-16 58 20309812 ns/op 60215 B/op 549 allocs/op BenchmarkAssembleSplitObject/window=2 BenchmarkAssembleSplitObject/window=2-16 94 11778861 ns/op 54929 B/op 603 allocs/op BenchmarkAssembleSplitObject/window=4 BenchmarkAssembleSplitObject/window=4-16 162 7308957 ns/op 62799 B/op 603 allocs/op ``` Closes #2791. Signed-off-by: Andrey Butusov <andrey@nspcc.io>
Closes #2791.