Repository navigation
sink(storage): ignore stale dml events - #1943
Conversation
There was a problem hiding this comment.
Summary of Changes
Hello @lidezhu, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request, marked as "Do Not Merge" (DNM), introduces logging improvements for cloud storage schema handling and adjusts integration test configurations. The changes appear to be part of a debugging or focused testing effort, specifically narrowing down the scope of CI storage tests to a single partition table scenario.
Highlights
- Enhanced Logging: Added detailed log.Info statements within pkg/sink/cloudstorage/path.go to provide better visibility into schema file existence checks and when existing schema files with matching checksums are identified.
- Test Configuration Adjustment: Modified tests/integration_tests/canal_json_storage_partition_table/conf/diff_config.toml to swap the roles of tidb0 and mysql1 as source and target instances, and updated their respective data source configurations.
- CI Test Scope Narrowing: Updated tests/integration_tests/run_heavy_it_in_ci.sh to make all storage_groups run only the canal_json_storage_partition_table integration test, likely for focused testing or debugging.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Code Review
This pull request introduces extensive logging in the cloud storage schema handling logic and modifies test configurations. While the added logging is useful for debugging, the implementation in pkg/sink/cloudstorage/path.go has significant code duplication that should be refactored. More critically, the changes in tests/integration_tests/run_heavy_it_in_ci.sh disable most of the storage integration tests, which is a major issue that must be addressed before merging. The changes in diff_config.toml appear to be related to this test setup.
|
/retest |
8083518 to
cb5879f
Compare
|
/retest |
1 similar comment
|
/retest |
|
/retest-required |
|
/retest |
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces a mechanism to ignore stale DML events in the cloud storage sink by checking for a newer schema version before processing. The logic appears sound and is accompanied by relevant tests. My review includes a few suggestions to improve code clarity, API design, and test code hygiene.
|
/gemini summary |
Summary of ChangesThis pull request addresses a potential data consistency issue in the cloud storage sink where DML events might be processed out of order relative to schema changes (DDL events). By implementing a mechanism to detect and ignore DML events that pertain to stale schema versions, the system ensures that only data conforming to the latest schema is written, thereby improving data integrity and reliability in the sink. Highlights
Changelog
Activity
|
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
|
/retest |
1 similar comment
|
/retest |
|
/retest |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: hongyunyan 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 |
[LGTM Timeline notifier]Timeline:
|
|
/retest |
What problem does this PR solve?
Issue Number: close #1948
What is changed and how it works?
Check List
Tests
Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note