-
Notifications
You must be signed in to change notification settings - Fork 285
improve: deferred the marshaling of the log entry until the async group commits and cleaned some code. #22475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
c8012bd
to
db31b60
Compare
User description
What type of PR is this?
Which issue(s) this PR fixes:
issue ##15166
What this PR does / why we need it:
This greatly improved the insertion performance. The sysbench-1000w-100t insertion is almost up 50%.
PR Type
Enhancement
Description
Deferred marshaling of log entries until async group commits
Added
ApproxSize()
interface to estimate payload sizesRefactored transaction processing pipeline with parallel WAL operations
Improved logtail collection with concurrent processing
Diagram Walkthrough
File Walkthrough
25 files
Add ApproxSize method to BaseNode interface
Implement ApproxSize for EntryCommand
Add ApproxSize implementations for DB nodes
Implement ApproxSize for metadata nodes
Add ApproxSize method to Schema and ColDef
Implement ApproxSize for table MVCC nodes
Add ApproxSize method to TxnCmd interface
Update trace constants for new pipeline
Add ApproxSize method to TxnMemo
Update transaction interfaces for new pipeline
Execute group WAL pre-callbacks before prepare
Use ApproxSize and add entry count limit
Defer marshaling with pre-callbacks and ApproxSize
Add pre-callback system and ApproxSize support
Add callback and size estimation interfaces
Refactor with concurrent logtail collection
Implement ApproxSize for Tree structures
Add ApproxSize and remove cmd buffer limits
Add event management methods to NoopTxnStore
Rename methods for new async pattern
Add ApproxSize method to TxnCtx
Refactor transaction pipeline with parallel processing
Implement ApproxSize for AppendCmd
Defer marshaling with callback system
Replace wait groups with event management
1 files
Increase default client buffer size
11 files