Skip to content

Conversation

@beingnoble03
Copy link
Member

@beingnoble03 beingnoble03 commented Apr 12, 2025

Description

This PR adds 2 TMC RPCs:

  • GetMaxValueForSequences : Gets the max used sequence value mapped with the provided backing sequence tables.
  • UpdateSequenceTables: Updates all the sequence tables listed in the request, with the max value provided in the sequence metadata.

Instead of separate RPC calls for each table per shard, these 2 RPCs allow it to reduce to just 1 RPC call (all tables at once) per shard for fetching and updating max sequence value each.

Related Issue(s)

Checklist

  • "Backport to:" labels have been added if this change should be back-ported to release branches
  • If this change is to be back-ported to previous releases, a justification is included in the PR description
  • Tests were added or are not required
  • Did the new or modified tests pass consistently locally and on CI?
  • Documentation was added or is not required

Deployment Notes

@vitess-bot
Copy link
Contributor

vitess-bot bot commented Apr 12, 2025

Review Checklist

Hello reviewers! 👋 Please follow this checklist when reviewing this Pull Request.

General

  • Ensure that the Pull Request has a descriptive title.
  • Ensure there is a link to an issue (except for internal cleanup and flaky test fixes), new features should have an RFC that documents use cases and test cases.

Tests

  • Bug fixes should have at least one unit or end-to-end test, enhancement and new features should have a sufficient number of tests.

Documentation

  • Apply the release notes (needs details) label if users need to know about this change.
  • New features should be documented.
  • There should be some code comments as to why things are implemented the way they are.
  • There should be a comment at the top of each new or modified test to explain what the test does.

New flags

  • Is this flag really necessary?
  • Flag names must be clear and intuitive, use dashes (-), and have a clear help text.

If a workflow is added or modified:

  • Each item in Jobs should be named in order to mark it as required.
  • If the workflow needs to be marked as required, the maintainer team must be notified.

Backward compatibility

  • Protobuf changes should be wire-compatible.
  • Changes to _vt tables and RPCs need to be backward compatible.
  • RPC changes should be compatible with vitess-operator
  • If a flag is removed, then it should also be removed from vitess-operator and arewefastyet, if used there.
  • vtctl command output order should be stable and awk-able.

@vitess-bot vitess-bot bot added NeedsBackportReason If backport labels have been applied to a PR, a justification is required NeedsDescriptionUpdate The description is not clear or comprehensive enough, and needs work NeedsIssue A linked issue is missing for this Pull Request NeedsWebsiteDocsUpdate What it says labels Apr 12, 2025
@github-actions github-actions bot added this to the v23.0.0 milestone Apr 12, 2025
@beingnoble03 beingnoble03 force-pushed the optimize-update-sequences branch from 301f2d9 to b1a5d19 Compare April 13, 2025 18:18
@codecov
Copy link

codecov bot commented Apr 14, 2025

Codecov Report

Attention: Patch coverage is 21.60804% with 156 lines in your changes missing coverage. Please review.

Project coverage is 67.50%. Comparing base (6b88ff2) to head (d1ff7e5).
Report is 18 commits behind head on main.

Files with missing lines Patch % Lines
go/vt/vttablet/tabletmanager/rpc_vreplication.go 0.00% 104 Missing ⚠️
go/vt/vtctl/workflow/sequences.go 75.43% 14 Missing ⚠️
go/vt/vttablet/grpctmclient/client.go 0.00% 14 Missing ⚠️
go/vt/vttablet/grpctmserver/server.go 0.00% 10 Missing ⚠️
go/vt/vttablet/tmrpctest/test_tm_rpc.go 0.00% 6 Missing ⚠️
go/vt/vtcombo/tablet_map.go 0.00% 4 Missing ⚠️
go/vt/vttablet/faketmclient/fake_client.go 0.00% 4 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #18172      +/-   ##
==========================================
- Coverage   67.55%   67.50%   -0.06%     
==========================================
  Files        1601     1601              
  Lines      261424   261576     +152     
==========================================
- Hits       176599   176570      -29     
- Misses      84825    85006     +181     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Signed-off-by: Noble Mittal <[email protected]>
repeated SequenceMetadata sequences = 1;
}

message GetMaxValueForSequencesResponse {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's add a comment here about what this map's key is.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done.

@rohit-nayak-ps rohit-nayak-ps marked this pull request as ready for review April 22, 2025 21:07
@rohit-nayak-ps rohit-nayak-ps added Type: Enhancement Logical improvement (somewhere between a bug and feature) Component: VReplication and removed NeedsDescriptionUpdate The description is not clear or comprehensive enough, and needs work NeedsWebsiteDocsUpdate What it says NeedsIssue A linked issue is missing for this Pull Request NeedsBackportReason If backport labels have been applied to a PR, a justification is required labels Apr 22, 2025
@rohit-nayak-ps rohit-nayak-ps merged commit 3a33fdd into vitessio:main Apr 24, 2025
106 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: VReplication Type: Enhancement Logical improvement (somewhere between a bug and feature)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants