From f387dfff09068f1bde478a287897a03e0dabcf6f Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Tue, 25 Sep 2018 20:28:28 +0800 Subject: [PATCH] add force priority config (#7777) --- config/config.go | 2 ++ config/config.toml.example | 4 ++++ tidb-server/main.go | 2 ++ 3 files changed, 8 insertions(+) diff --git a/config/config.go b/config/config.go index fff33402b6afd..a6f3c51ba81b4 100644 --- a/config/config.go +++ b/config/config.go @@ -157,6 +157,7 @@ type Performance struct { FeedbackProbability float64 `toml:"feedback-probability" json:"feedback-probability"` QueryFeedbackLimit uint `toml:"query-feedback-limit" json:"query-feedback-limit"` PseudoEstimateRatio float64 `toml:"pseudo-estimate-ratio" json:"pseudo-estimate-ratio"` + ForcePriority string `toml:"force-priority" json:"force-priority"` } // XProtocol is the XProtocol section of the config. @@ -290,6 +291,7 @@ var defaultConf = Config{ FeedbackProbability: 0.05, QueryFeedbackLimit: 1024, PseudoEstimateRatio: 0.8, + ForcePriority: "NO_PRIORITY", }, XProtocol: XProtocol{ XHost: "", diff --git a/config/config.toml.example b/config/config.toml.example index 3cde9082246cf..bea0a99590eb6 100644 --- a/config/config.toml.example +++ b/config/config.toml.example @@ -147,6 +147,10 @@ query-feedback-limit = 1024 # row count in statistics of a table is greater than it. pseudo-estimate-ratio = 0.8 +# Force the priority of all statements in a specified priority. +# The value could be "NO_PRIORITY", "LOW_PRIORITY", "HIGH_PRIORITY" or "DELAYED". +force-priority = "NO_PRIORITY" + [proxy-protocol] # PROXY protocol acceptable client networks. # Empty string means disable PROXY protocol, * means all networks. diff --git a/tidb-server/main.go b/tidb-server/main.go index 019e2160ff923..ba4e060ae6eb9 100644 --- a/tidb-server/main.go +++ b/tidb-server/main.go @@ -31,6 +31,7 @@ import ( "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/metrics" + "github.com/pingcap/tidb/mysql" plannercore "github.com/pingcap/tidb/planner/core" "github.com/pingcap/tidb/privilege/privileges" "github.com/pingcap/tidb/server" @@ -387,6 +388,7 @@ func setGlobalVars() { ddl.EnableSplitTableRegion = cfg.SplitTable plannercore.AllowCartesianProduct = cfg.Performance.CrossJoin privileges.SkipWithGrant = cfg.Security.SkipGrantTable + variable.ForcePriority = int32(mysql.Str2Priority(cfg.Performance.ForcePriority)) variable.SysVars[variable.TIDBMemQuotaQuery].Value = strconv.FormatInt(cfg.MemQuotaQuery, 10) variable.SysVars["lower_case_table_names"].Value = strconv.Itoa(cfg.LowerCaseTableNames)