-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Query serving: incorporate mirror query results in log stats, fix mirror query max lag bug #16879
Query serving: incorporate mirror query results in log stats, fix mirror query max lag bug #16879
Conversation
Signed-off-by: Max Englander <[email protected]>
Review ChecklistHello reviewers! 👋 Please follow this checklist when reviewing this Pull Request. General
Tests
Documentation
New flags
If a workflow is added or modified:
Backward compatibility
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #16879 +/- ##
=======================================
Coverage 69.43% 69.43%
=======================================
Files 1571 1571
Lines 203195 203237 +42
=======================================
+ Hits 141079 141119 +40
- Misses 62116 62118 +2 ☔ View full report in Codecov by Sentry. |
Signed-off-by: Max Englander <[email protected]>
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.
LGTM!
Description
This PR adds a few new fields to log stats to provide visibility into traffic mirroring. The idea behind traffic mirroring is to see if the target of a VReplication workflow will perform as well as the source when queries are sent to it. In order to make that determination, we can send mirrored queries to the target with
MirrorTraffic
. However, we also need a way to compare the query execution times and errors of the source vs. target queries.While working on this PR, I noticed a bug with how mirror target queries are bounded. The VTGate mirror primitive was written with the intention of having the mirror target be canceled if it continues executing for too long (hardcoded at 100ms) after the source primitive finishes executing. However as it is currently written the mirror target will be canceled if it executes for more than 100ms. This PR fixes that.
Related Issue(s)
Fix #16877
Close #16878
Close #13772
Checklist
Deployment Notes
None