Repository navigation
*: bump arrow-go and update replacement | plugin=pr/246 - #69461
ti-chi-bot[bot] merged 8 commits into
Conversation
|
Skipping CI for Draft Pull Request. |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThe PR refreshes Go and Bazel dependencies, adds repository pins, and updates replacement directives. It also separates Parquet streaming and preload reader properties, includes read-ahead buffers in memory estimates, and adds large-page peak-memory coverage. ChangesDependency refresh
Parquet memory controls
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant NewParser
participant Parser
participant RowGroupBuilder
participant ParquetReader
NewParser->>Parser: create stream and preload properties
Parser->>RowGroupBuilder: select properties by row-group size
RowGroupBuilder->>ParquetReader: construct reader with selected properties
Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
842105a to
76835bc
Compare
|
/test all |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #69461 +/- ##
================================================
- Coverage 76.3194% 73.8191% -2.5003%
================================================
Files 2041 2058 +17
Lines 560092 583920 +23828
================================================
+ Hits 427459 431045 +3586
- Misses 131732 152028 +20296
+ Partials 901 847 -54
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
76835bc to
cdc5cd5
Compare
|
/test all |
cdc5cd5 to
d24a866
Compare
d24a866 to
7c7d0e4
Compare
|
/test all |
7c7d0e4 to
1c0a042
Compare
1c0a042 to
b0252ca
Compare
|
🔍 Starting code review for this PR... |
ingress-bot
left a comment
There was a problem hiding this comment.
This review was generated by AI and should be verified by a human reviewer.
Manual follow-up is recommended before merge.
Summary
- Total findings: 3
- Inline comments: 2
- Summary-only findings (no inline anchor): 1
Findings (highest risk first)
⚠️ [Major] (1)
- In-memory-vs-streaming threshold predicate duplicated a third time instead of extracted into a shared helper (pkg/dumpformat/parquetfile/parser.go:440, pkg/dumpformat/parquetfile/parser.go:906, pkg/dumpformat/parquetfile/parser.go:927)
🟡 [Minor] (2)
- Per-column 8 MiB stream read-ahead scales with column count and regresses memory for wide parquet files (pkg/dumpformat/parquetfile/parser.go:79, pkg/dumpformat/parquetfile/parser.go:392, pkg/dxf/importinto/task_executor.go:218)
- Peak-memory regression test asserts an unexplained
4<<20slack constant (pkg/dumpformat/parquetfile/parser_test.go:1401)
Unanchored findings
⚠️ [Major] (1)
- In-memory-vs-streaming threshold predicate duplicated a third time instead of extracted into a shared helper
- Request: Extract a single helper, e.g.
func isRowGroupInMemory(rangeSize int64) bool { return rangeSize <= int64(rowGroupInMemoryThreshold) }, and call it fromgetBuilder,estimateInMemoryRowGroupBufferBytes, andestimateReadAheadBufferBytesso the three sites cannot drift independently.
- Request: Extract a single helper, e.g.
|
/hold This shold be merged simultaneously with plugin PR. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: bb7133, D3Hunter, GMHDBJD The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
/retest |
|
/unhold |
|
/cherry-pick release-nextgen-202603 |
|
@joechenrh: new pull request created to branch DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository. |
What problem does this PR solve?
Issue Number: close #xxx
Problem Summary:
TiDB currently replaces
github.com/apache/arrow-go/v18with a forked module. Now the fork is no longer needed.What changed and how does it work?
github.com/apache/arrow-go/v18tov18.6.1-0.20260713210906-efc145c067b6, which includes feat(parquet): opt-in streaming reads for large data pages apache/arrow-go#880.github.com/joechenrh/arrow-go/v18.cloud.google.com/go/storagepinned to v1.39.1 to avoid the current Bazel protobuf toolchain incompatibility.Check List
Tests
Page-streaming benchmark
c6i.2xlargein the same region as the S3 bucket.The cells below are median parse throughput in MiB/s (CV; median peak RSS in MiB):
Profiles show that the PR's 8 MiB-per-column setting allocates about 196 MiB in Arrow's
bufferedReader.resetBufferin case B; representative total allocation rose from 61 MB on master to 268 MB. This explains the small-page regression. In case A, page streaming reduces representative total allocation from 466 MB on master to 157 MB with an 8 MiB total budget and 150 MB with 1 KiB per column. CPU samples were dominated by TLS/syscall andruntime.memmove; no new decoder hotspot appeared.The result supports page streaming, but not an 8 MiB buffer per column. The current implementation therefore keeps the existing 1 KiB read-ahead, which gives the best overall balance in these workloads; an 8 MiB total budget still regresses the small-page case by about 11% at the median.
Side effects
Documentation
Release note
Please refer to Release Notes Language Style Guide to write a quality release note.
Summary by CodeRabbit
Improvements
Bug Fixes
Maintenance