Skip to content
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

v20 backport: CI upgrade/downgrade tests for Online DDL / throttler / vreplication flow #16065

Conversation

shlomi-noach
Copy link
Contributor

This is the backport of #16017

Backporting manually as I forgot to add the backport label.

Description

Adding upgrade/downgrade tests as follows:

  • The tests will run an X version VTTablet primary, with Y VTTablet replica. See breakdown below.
  • Enable tablet throttler.
  • Create and populate some table.
  • Create a load. The load takes throttling into account so that it does not overwhelm the cluster.
  • Run Online DDL with vitess strategy, thereby running VReplication that is also using the throttler.
  • Throttle and unthrottle the migration.
  • Validate migration behavior while under load. Complete the migration.
  • Expect successful completion of the migration, with cut-over as graceful as possible (but will resort to forced cut-over if unable to complete in a timely fashion).

See more details in https://github.com/vitessio/vitess/pull/16017/files#diff-dc6e3889488266071984d6da1f44795b7b06bf5ff6504c8e9aa359598918230aR17-R37

This will test cross version compatibility of the throttler, of vreplication, of Online DDL. It runs onlineddl_flow in the following setups:

  • Primary at version N (current) and replica at N-1
  • Primary at version N-1 and replica at N
  • Primary at version N+1 and replica at N
  • Primary at version N and replica at N+1

Each such flow runs at about 1 minute, which is why I chose to aggregate them all in the same workflow test (as opposed to splitting to "new" and "old")

EDIT: sample execution flow: https://github.com/vitessio/vitess/actions/runs/9348746367/job/25728525330?pr=16017

Related Issue(s)

No specific issue, but with #15988 in mind.

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

…flow (vitessio#16017)

Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Co-authored-by: Florent Poinsard <35779988+frouioui@users.noreply.github.com>
Copy link
Contributor

vitess-bot bot commented Jun 5, 2024

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.

@github-actions github-actions bot added this to the v20.0.0 milestone Jun 5, 2024
Copy link

codecov bot commented Jun 5, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 68.22%. Comparing base (83c14fa) to head (e0970b6).

Additional details and impacted files
@@               Coverage Diff                @@
##           release-20.0   #16065      +/-   ##
================================================
+ Coverage         68.20%   68.22%   +0.02%     
================================================
  Files              1541     1541              
  Lines            197330   197330              
================================================
+ Hits             134591   134635      +44     
+ Misses            62739    62695      -44     

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

Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
@frouioui frouioui mentioned this pull request Jun 5, 2024
49 tasks
@shlomi-noach shlomi-noach merged commit e0bbefc into vitessio:release-20.0 Jun 10, 2024
94 checks passed
@shlomi-noach shlomi-noach deleted the ci-upgrade-downgrade-onlineddl-20.0 branch June 10, 2024 05:36
vitess-bot pushed a commit that referenced this pull request Jun 10, 2024
… vreplication flow (#16065)

Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Co-authored-by: Florent Poinsard <35779988+frouioui@users.noreply.github.com>
shlomi-noach added a commit that referenced this pull request Jun 10, 2024
… DDL / throttler / vreplication flow (#16065) (#16082)

Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Co-authored-by: vitess-bot[bot] <108069721+vitess-bot[bot]@users.noreply.github.com>
Co-authored-by: Florent Poinsard <35779988+frouioui@users.noreply.github.com>
Co-authored-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Backport to: release-20.0-rc Needs to be backport to release-20.0-rc Backport This is a backport Component: Online DDL Online DDL (vitess/native/gh-ost/pt-osc) Component: Throttler Component: VReplication Type: Testing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants