Skip to content

etl: zero-copy memDataProvider#19780

Merged
AskAlexSharov merged 11 commits intorelease/3.4from
alex/etl_membuf_zero_copy_34
Mar 16, 2026
Merged

etl: zero-copy memDataProvider#19780
AskAlexSharov merged 11 commits intorelease/3.4from
alex/etl_membuf_zero_copy_34

Conversation

@AskAlexSharov
Copy link
Copy Markdown
Collaborator

@AskAlexSharov AskAlexSharov commented Mar 10, 2026

for: #19778

10gb of files `systemd-run --user -P -t -G --wait -p MemoryMax=1G -E GOMEMLIMIT=800MiB`:
`BenchmarkSortableBufferLoadOnly`:
┌─────────────┬─────────────┬──────────────┬────────────────────┐
  │   Metric    │ release/3.4 │ zero_copy_34 │       Delta        │
  ├─────────────┼─────────────┼──────────────┼────────────────────┤
  │ Time/op     │ ~33.9s      │ ~31.7s       │ -6.5%              │
  ├─────────────┼─────────────┼──────────────┼────────────────────┤
  │ B/op (heap) │ 97.1 MB     │ 0.63 MB      │ -99.4% (155x less) │
  ├─────────────┼─────────────┼──────────────┼────────────────────┤
  │ allocs/op   │ ~1,301      │ ~772         │ -40.7%             │
  ├─────────────┼─────────────┼──────────────┼────────────────────┤
  │ Memory peak │ 4.4 MB      │ 5.1 MB       │ ~same              │
  └─────────────┴─────────────┴──────────────┴────────────────────┘
InMem buffer case (when we have < 32mb of data in etl collector):

  │ BenchmarkSortableBufferInmemLoadOnly │ 984.2 µs    │ 224.4 µs     │ 4.4x faster  │

@AskAlexSharov AskAlexSharov marked this pull request as draft March 11, 2026 02:35
@AskAlexSharov AskAlexSharov marked this pull request as ready for review March 15, 2026 05:12
@AskAlexSharov AskAlexSharov requested a review from JkLondon March 16, 2026 03:15
@AskAlexSharov AskAlexSharov changed the title [wip] etl: zero-copy memDataProvider etl: zero-copy memDataProvider Mar 16, 2026
@AskAlexSharov AskAlexSharov marked this pull request as draft March 16, 2026 03:16
@AskAlexSharov AskAlexSharov marked this pull request as ready for review March 16, 2026 03:16
@AskAlexSharov AskAlexSharov enabled auto-merge (squash) March 16, 2026 03:16
@AskAlexSharov AskAlexSharov merged commit 329c38a into release/3.4 Mar 16, 2026
38 checks passed
@AskAlexSharov AskAlexSharov deleted the alex/etl_membuf_zero_copy_34 branch March 16, 2026 08:49
AskAlexSharov added a commit that referenced this pull request Apr 12, 2026
for: #19778

```
10gb of files `systemd-run --user -P -t -G --wait -p MemoryMax=1G -E GOMEMLIMIT=800MiB`:
`BenchmarkSortableBufferLoadOnly`:
┌─────────────┬─────────────┬──────────────┬────────────────────┐
  │   Metric    │ release/3.4 │ zero_copy_34 │       Delta        │
  ├─────────────┼─────────────┼──────────────┼────────────────────┤
  │ Time/op     │ ~33.9s      │ ~31.7s       │ -6.5%              │
  ├─────────────┼─────────────┼──────────────┼────────────────────┤
  │ B/op (heap) │ 97.1 MB     │ 0.63 MB      │ -99.4% (155x less) │
  ├─────────────┼─────────────┼──────────────┼────────────────────┤
  │ allocs/op   │ ~1,301      │ ~772         │ -40.7%             │
  ├─────────────┼─────────────┼──────────────┼────────────────────┤
  │ Memory peak │ 4.4 MB      │ 5.1 MB       │ ~same              │
  └─────────────┴─────────────┴──────────────┴────────────────────┘
```

```
InMem buffer case (when we have < 32mb of data in etl collector):

  │ BenchmarkSortableBufferInmemLoadOnly │ 984.2 µs    │ 224.4 µs     │ 4.4x faster  │
```
github-merge-queue Bot pushed a commit that referenced this pull request Apr 13, 2026
Cherry-pick from `release/3.4` to `main`:

- #19677 agg: workers presets. ressplit workers
- #19919 Revert "flush: use etl.IdentityLoadFunc instead custom. part2"
- #19780 etl: zero-copy memDataProvider
- #19941 d_lru: disable for commitment
- #19942 TemporalMemBatch: re-use vals-slice when can
- #19996 etl: pool of bufwriter
- #19995 collate: replace bitmap by array
- #20002 skill creator review results
- #20033 seg: revert global limiter
- #20046 Caplin: prevent calling `glob` per file in
`BuildMissingIndices`
- #20113 seg: more usage of bufio
- #20194 execution/state: revert CodeSizePath in codeChange journal
entry
- #20431 remove `flush complete` log line
- #20440 etl: munmap temp files in Dispose to prevent disk space leak

93 commits skipped due to conflicts (branches diverged significantly).

---------

Co-authored-by: lystopad <oleksandr.lystopad@erigon.tech>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: moskud <sudeepdino008@gmail.com>
Co-authored-by: info@weblogix.biz <admin@10gbps.weblogix.it>
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