-
Notifications
You must be signed in to change notification settings - Fork 499
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
add tikvGCLifeTime option #835
Conversation
/run-e2e-in-kind |
charts/tidb-backup/values.yaml
Outdated
@@ -56,6 +56,9 @@ backupOptions: "--verbose=3" | |||
initialCommitTs: "" | |||
# restoreOptions is the options of loader https://www.pingcap.com/docs-cn/tools/loader/ | |||
restoreOptions: "-t 16" | |||
# The time limit during which data is retained for each GC when backup, in the format of Go Duration. | |||
# When a GC happens, the current time minus this value is the safe point. | |||
tikvGCLifeTime: 3h |
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.
I think it would better to use a long gc life time that impossible to reach as the default, e.g. 720h, which effectively "disable" the GC when backup in progress.
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.
Yes, I think this should not even be an option: the controller should automatically hold open the GC. Here we can have a timeout option to timeout the backup if it does not complete and document that it helps limit performance degradation during backup due to maintaining the GC. TiDB is supposed to get a backup lock feature eventually.
/run-e2e-in-kind |
1 similar comment
/run-e2e-in-kind |
/run-e2e-in-kind |
@@ -15,8 +15,8 @@ fi | |||
gc_life_time=`/usr/bin/mysql -h${host} -P4000 -u${TIDB_USER} ${password_str} -Nse "select variable_value from mysql.tidb where variable_name='tikv_gc_life_time';"` | |||
echo "Old TiKV GC life time is ${gc_life_time}" | |||
|
|||
echo "Increase TiKV GC life time to 3h" | |||
/usr/bin/mysql -h${host} -P4000 -u${TIDB_USER} ${password_str} -Nse "update mysql.tidb set variable_value='3h' where variable_name='tikv_gc_life_time';" | |||
echo "Increase TiKV GC life time to {{ .Values.tikvGCLifeTime }}" |
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.
echo "Increase TiKV GC life time to {{ .Values.tikvGCLifeTime }}" | |
echo "Increase TiKV GC life time to {{ .Values.tikvGCLifeTime | default 720 }}" |
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.
When adding new variable to chart, always remember to set a default in case of users not providing the variable.
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.
done
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
/run-e2e-in-kind |
@@ -15,8 +15,8 @@ fi | |||
gc_life_time=`/usr/bin/mysql -h${host} -P4000 -u${TIDB_USER} ${password_str} -Nse "select variable_value from mysql.tidb where variable_name='tikv_gc_life_time';"` | |||
echo "Old TiKV GC life time is ${gc_life_time}" | |||
|
|||
echo "Increase TiKV GC life time to 3h" | |||
/usr/bin/mysql -h${host} -P4000 -u${TIDB_USER} ${password_str} -Nse "update mysql.tidb set variable_value='3h' where variable_name='tikv_gc_life_time';" | |||
echo "Increase TiKV GC life time to {{ .Values.tikvGCLifeTime | default 720h }}" |
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.
This reports error when the value is not set:
Error: parse error in "tidb-cluster/templates/scripts/_start_scheduled_backup.sh.tpl": template: tidb-cluster/templates/scripts/_start_scheduled_backup.sh.tpl:22: bad number syntax: "720h"
echo "Increase TiKV GC life time to 3h" | ||
/usr/bin/mysql -h${host} -P4000 -u${TIDB_USER} ${password_str} -Nse "update mysql.tidb set variable_value='3h' where variable_name='tikv_gc_life_time';" | ||
echo "Increase TiKV GC life time to {{ .Values.tikvGCLifeTime | default 720h }}" | ||
/usr/bin/mysql -h${host} -P4000 -u${TIDB_USER} ${password_str} -Nse "update mysql.tidb set variable_value='{{ .Values.tikvGCLifeTime | default 720h }}' where variable_name='tikv_gc_life_time';" |
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.
/usr/bin/mysql -h${host} -P4000 -u${TIDB_USER} ${password_str} -Nse "update mysql.tidb set variable_value='{{ .Values.tikvGCLifeTime | default 720h }}' where variable_name='tikv_gc_life_time';" | |
/usr/bin/mysql -h${host} -P4000 -u${TIDB_USER} ${password_str} -Nse "update mysql.tidb set variable_value='{{ .Values.tikvGCLifeTime | default "720h" }}' where variable_name='tikv_gc_life_time';" |
/run-e2e-in-kind |
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
cherry pick to release-1.0 failed |
(cherry picked from commit e22e480)
What problem does this PR solve?
What is changed and how does it work?
Check List
Tests
Code changes
Side effects
Related changes
Does this PR introduce a user-facing change?: