func initHotRegionScheduleConfig() *hotRegionSchedulerConfig {
	cfg := &hotRegionSchedulerConfig{
		MinHotByteRate:         100,
		MinHotKeyRate:          10,
		MinHotQueryRate:        10,
		MaxZombieRounds:        3,
		MaxPeerNum:             1000,
		ByteRateRankStepRatio:  0.05,
		KeyRateRankStepRatio:   0.05,
		QueryRateRankStepRatio: 0.05,
		CountRankStepRatio:     0.01,
		GreatDecRatio:          0.95,
		MinorDecRatio:          0.99,
		SrcToleranceRatio:      1.05,  
		DstToleranceRatio:      1.05,  
		StrictPickingStore:     true,
		EnableForTiFlash:       true,
	}
	cfg.apply(defaultConfig)
	return cfg
}
params about hot region.
package schedulers
import (
	"bytes"
	"encoding/json"
	"io"
	"net/http"
	"reflect"
	"strings"
	"sync"
	"time"
	"github.com/gorilla/mux"
	"github.com/pingcap/log"
	"github.com/tikv/pd/pkg/slice"
	"github.com/tikv/pd/server/core"
	"github.com/tikv/pd/server/schedule"
	"github.com/tikv/pd/server/schedule/opt"
	"github.com/tikv/pd/server/statistics"
	"github.com/tikv/pd/server/versioninfo"
	"github.com/unrolled/render"
	"go.uber.org/zap"
)
const (
	BytePriority = "byte"
	KeyPriority = "key"
	QueryPriority = "query"
	tiflashToleranceRatioCorrection = 0.1
)
var defaultConfig = prioritiesConfig{
	read:        []string{QueryPriority, BytePriority},
	writeLeader: []string{KeyPriority, BytePriority},
	writePeer:   []string{BytePriority, KeyPriority},
}
var compatibleConfig = prioritiesConfig{
	read:        []string{BytePriority, KeyPriority},
	writeLeader: []string{KeyPriority, BytePriority},
	writePeer:   []string{BytePriority, KeyPriority},
}