Skip to content

Reduced copying of ReplicateV2 chunks - #4194

Merged
roman-khimov merged 3 commits into
masterfrom
replication-stream-continue
Oct 6, 2026
Merged

roman-khimov merged 3 commits into
masterfrom
replication-stream-continue

Conversation

@cthulhu-rider

@cthulhu-rider cthulhu-rider commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

No description provided.

@codecov

codecov Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 11.88119% with 89 lines in your changes missing coverage. Please review.
✅ Project coverage is 31.31%. Comparing base (cf8b42c) to head (47d8ff1).

Files with missing lines Patch % Lines
pkg/services/object/server.go 2.38% 41 Missing ⚠️
...ject_storage/blobstor/fstree/fstree_write_linux.go 0.00% 21 Missing ⚠️
pkg/local_object_storage/engine/put.go 11.11% 8 Missing ⚠️
...ct_storage/blobstor/fstree/fstree_write_generic.go 0.00% 7 Missing ⚠️
pkg/local_object_storage/writecache/put.go 12.50% 7 Missing ⚠️
pkg/local_object_storage/shard/put.go 61.53% 5 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4194      +/-   ##
==========================================
- Coverage   31.36%   31.31%   -0.06%     
==========================================
  Files         677      677              
  Lines       41483    41556      +73     
==========================================
+ Hits        13012    13013       +1     
- Misses      28471    28543      +72     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@cthulhu-rider
cthulhu-rider force-pushed the replication-stream-continue branch 2 times, most recently from 85661a9 to 2c244be Compare September 28, 2026 13:18
@cthulhu-rider
cthulhu-rider marked this pull request as ready for review September 28, 2026 13:20
Comment thread pkg/services/object/server.go Outdated
Comment thread pkg/services/object/server.go Outdated
@cthulhu-rider
cthulhu-rider force-pushed the replication-stream-continue branch 2 times, most recently from 2400c49 to ab41967 Compare September 30, 2026 12:26
@cthulhu-rider cthulhu-rider added the blocked Can't be done because of something label Oct 2, 2026
@cthulhu-rider
cthulhu-rider force-pushed the replication-stream-continue branch 4 times, most recently from 45e5f50 to cd012d2 Compare October 5, 2026 20:02
@roman-khimov roman-khimov removed the blocked Can't be done because of something label Oct 6, 2026
Comment thread internal/io/io.go Outdated
Comment thread pkg/local_object_storage/shard/put.go Outdated
@cthulhu-rider
cthulhu-rider force-pushed the replication-stream-continue branch from cd012d2 to 7be11a2 Compare October 6, 2026 09:47

@roman-khimov roman-khimov left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Conflicts.

Comment thread pkg/local_object_storage/shard/put.go Outdated
Default gRPC unmarshaler uses reflection and copies fields of `bytes`
type. Now the message is scanned and copied directly to the storage
without additional copies.

Refs #4157.

Signed-off-by: Leonard Liubich <leonard@morphbits.io>
Meaningful for Linux only for now.

Signed-off-by: Leonard Liubich <leonard@morphbits.io>
Leverage Linux writev() syscall used under the hood for better
performance of multi-frame cases (majority in practice). If the chunk
fits into one frame (buffer), call write().

For other OS WriteBuffer() is also called, but it doesn't make a
difference according to implementation.

Refs #4157.

Signed-off-by: Leonard Liubich <leonard@morphbits.io>
@cthulhu-rider
cthulhu-rider force-pushed the replication-stream-continue branch from 7be11a2 to 47d8ff1 Compare October 6, 2026 18:44
@roman-khimov
roman-khimov merged commit ba629f2 into master Oct 6, 2026
20 of 22 checks passed
@roman-khimov
roman-khimov deleted the replication-stream-continue branch October 6, 2026 20:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants