-
Notifications
You must be signed in to change notification settings - Fork 7
Mariadb mysql fixes and improvements #212
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request enhances MySQL and MariaDB benchmarking support with improved Docker configurations, robust error handling for batch operations, and stricter correctness verification. The changes enable binary logging with configurable row image formats, introduce automatic deadlock retry logic, add missing value validation, and verify affected row counts to ensure data consistency.
Key Changes:
- Updated MySQL Docker config to use
innodb-redo-log-capacity(replacing deprecatedinnodb-log-file-sizefor MySQL 8.0.30+) and added binary logging configuration - Added
exec_and_verifyhelper method with automatic deadlock retry and row count verification for batch create/update/delete operations - Enhanced batch operations with missing column validation and strict row count assertions
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| src/mysql.rs | Updated Docker configuration for MySQL 8.0.30+ compatibility, added binary logging settings (MINIMAL for optimized, FULL for default), implemented exec_and_verify helper with deadlock retry logic, enhanced batch operations with row count verification and missing value checks |
| src/mariadb.rs | Added binary logging configuration matching MySQL changes, implemented identical exec_and_verify helper, enhanced batch operations with same validation and verification improvements |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
a6a759e to
8c2dcbe
Compare
|
i think copilot's suggestions were stupid. I implemented some and everything broke, because it was completely invalid syntax. Removed and force-pushed the original PR |
This pull request introduces significant improvements to the benchmarking support for MySQL and MariaDB backends. The main changes include enhanced Docker configurations for both databases, robust error handling and verification for batch operations, and stricter correctness checks to ensure expected results.
Database Docker configuration enhancements:
mysqlandmariadbDocker configurations now enable binary logging, set the binlog format toROW, specify aserver-id, and adjustbinlog-row-imagebased on whether the configuration is optimized or default (MINIMAL for optimized, FULL for default). This ensures consistency and enables replication-related features. [1] [2] [3] [4]innodb-redo-log-capacityinstead of the deprecatedinnodb-log-file-size, aligning with changes in MySQL 8.0.30+. [1] [2]Batch operation correctness and error handling:
exec_and_verifyfor bothMysqlClientandMariadbClientto execute statements, verify the number of affected rows, and automatically retry on deadlock errors (error 1213), improving reliability of batch operations. [1] [2]exec_and_verifyto ensure the expected number of rows are affected, and return errors if not. [1] [2] [3] [4] [5] [6] [7] [8]Correctness checks in batch reads:
These changes collectively improve the reliability, correctness, and observability of the benchmarking framework for MySQL and MariaDB backends.
References: