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

ddl: fix ErrGCTooEarly when adding an index to the partition table #14029

Merged
merged 4 commits into from
Dec 19, 2019

Conversation

zimulala
Copy link
Contributor

What problem does this PR solve?

The partition table has several PartitionDefinition. Every PartitionDefinition we will read the corresponding columns records and backfill the index data when adding an index. We will deal with PartitionDefinition one by one.
Before a PartitionDefinition read the records, we will use reorg.Job.SnapshotVer to get range information. When we have two PartitionDefinition, and the first partition we do a long time. Then fetching the ranges for the second partition may encounter an ErrGCTooEarly error.

What is changed and how it works?

Using the current version to get the range of a partition table.

Check List

Tests

  • Unit test

Related changes

  • Need to cherry-pick to the release branch

Release note

  • Fix the error of ErrGCTooEarly when adding an index to the partition table

@wjhuang2016
Copy link
Member

Using the current version to get the range of a partition table.

Why we use SnapshotVer before? Is it safe to use the current version here?

@codecov
Copy link

codecov bot commented Dec 12, 2019

Codecov Report

❗ No coverage uploaded for pull request base (master@67422f4). Click here to learn what that means.
The diff coverage is 70%.

@@             Coverage Diff             @@
##             master     #14029   +/-   ##
===========================================
  Coverage          ?   80.1892%           
===========================================
  Files             ?        482           
  Lines             ?     120768           
  Branches          ?          0           
===========================================
  Hits              ?      96843           
  Misses            ?      16202           
  Partials          ?       7723

@zimulala
Copy link
Contributor Author

@wjhuang2016
This is theoretically possible, but may lead to "ErrGCTooEarly". It is safe to use the current version, and currently adding indexes on non-partitioned also uses this method.

@zimulala
Copy link
Contributor Author

Copy link
Contributor

@AilinKid AilinKid left a comment

Choose a reason for hiding this comment

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

Rest LGTM

ddl/index.go Outdated Show resolved Hide resolved
Copy link
Contributor

@AilinKid AilinKid left a comment

Choose a reason for hiding this comment

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

LGTM

@AilinKid AilinKid added the status/LGT1 Indicates that a PR has LGTM 1. label Dec 18, 2019
Copy link
Member

@wjhuang2016 wjhuang2016 left a comment

Choose a reason for hiding this comment

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

lgtm

@tiancaiamao
Copy link
Contributor

LGTM

@tiancaiamao tiancaiamao added status/LGT3 The PR has already had 3 LGTM. and removed status/LGT1 Indicates that a PR has LGTM 1. labels Dec 19, 2019
@zimulala zimulala added the status/can-merge Indicates a PR has been approved by a committer. label Dec 19, 2019
@sre-bot
Copy link
Contributor

sre-bot commented Dec 19, 2019

/run-all-tests

@sre-bot
Copy link
Contributor

sre-bot commented Dec 19, 2019

cherry pick to release-3.0 in PR #14132

@zimulala zimulala deleted the partition-add-index branch December 20, 2019 02:02
@you06 you06 added the sig/sql-infra SIG: SQL Infra label Mar 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
sig/sql-infra SIG: SQL Infra status/can-merge Indicates a PR has been approved by a committer. status/LGT3 The PR has already had 3 LGTM.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants