From b51cc8938f83e66012608913e0779e36a6493754 Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Tue, 13 Dec 2022 23:46:15 +0800 Subject: [PATCH 01/18] lightning: local backend support keyspace Signed-off-by: iosmanthus --- .gitignore | 2 +- br/pkg/lightning/backend/kv/BUILD.bazel | 1 + br/pkg/lightning/backend/kv/sql2kv_test.go | 3 ++ br/pkg/lightning/backend/local/BUILD.bazel | 1 + br/pkg/lightning/backend/local/duplicate.go | 16 ++++++ br/pkg/lightning/backend/local/engine.go | 7 +++ br/pkg/lightning/backend/local/local.go | 54 +++++++++++++------- br/pkg/lightning/backend/local/local_test.go | 3 +- br/pkg/lightning/lightning.go | 35 +++++++++++++ br/pkg/lightning/restore/restore.go | 10 +++- ddl/ingest/backend.go | 6 +-- ddl/ingest/backend_mgr.go | 13 ++--- ddl/ingest/config.go | 37 +++++++++----- store/driver/tikv_driver.go | 1 - 14 files changed, 143 insertions(+), 46 deletions(-) diff --git a/.gitignore b/.gitignore index 35af372bcccad..c5e8d396c848f 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,6 @@ out bazel-bin bazel-out bazel-testlogs -bazel-tidb +bazel-tidb* .ijwb/ /oom_record/ diff --git a/br/pkg/lightning/backend/kv/BUILD.bazel b/br/pkg/lightning/backend/kv/BUILD.bazel index b0da8a0e7deb4..a8c415f5221fd 100644 --- a/br/pkg/lightning/backend/kv/BUILD.bazel +++ b/br/pkg/lightning/backend/kv/BUILD.bazel @@ -58,6 +58,7 @@ go_test( "//br/pkg/lightning/log", "//br/pkg/lightning/verification", "//ddl", + "//keyspace", "//kv", "//meta/autoid", "//parser", diff --git a/br/pkg/lightning/backend/kv/sql2kv_test.go b/br/pkg/lightning/backend/kv/sql2kv_test.go index 8c14731cf82dd..5b8e5d18ebd91 100644 --- a/br/pkg/lightning/backend/kv/sql2kv_test.go +++ b/br/pkg/lightning/backend/kv/sql2kv_test.go @@ -25,6 +25,7 @@ import ( "github.com/pingcap/tidb/br/pkg/lightning/log" "github.com/pingcap/tidb/br/pkg/lightning/verification" "github.com/pingcap/tidb/ddl" + "github.com/pingcap/tidb/keyspace" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/meta/autoid" "github.com/pingcap/tidb/parser" @@ -42,6 +43,8 @@ import ( "go.uber.org/zap/zapcore" ) +var defaultCodec = keyspace.CodecV1 + func TestMarshal(t *testing.T) { nullDatum := types.Datum{} nullDatum.SetNull() diff --git a/br/pkg/lightning/backend/local/BUILD.bazel b/br/pkg/lightning/backend/local/BUILD.bazel index 9524ab5febc2b..6615cd79ee377 100644 --- a/br/pkg/lightning/backend/local/BUILD.bazel +++ b/br/pkg/lightning/backend/local/BUILD.bazel @@ -110,6 +110,7 @@ go_test( "//br/pkg/restore/split", "//br/pkg/utils", "//ddl", + "//keyspace", "//kv", "//parser", "//parser/ast", diff --git a/br/pkg/lightning/backend/local/duplicate.go b/br/pkg/lightning/backend/local/duplicate.go index 8877c16ae7740..fe6cd110a026c 100644 --- a/br/pkg/lightning/backend/local/duplicate.go +++ b/br/pkg/lightning/backend/local/duplicate.go @@ -387,6 +387,7 @@ type DuplicateManager struct { tableName string splitCli split.SplitClient tikvCli *tikv.KVStore + tikvCodec tikv.Codec errorMgr *errormanager.ErrorManager decoder *kv.TableKVDecoder logger log.Logger @@ -401,6 +402,7 @@ func NewDuplicateManager( tableName string, splitCli split.SplitClient, tikvCli *tikv.KVStore, + tikvCodec tikv.Codec, errMgr *errormanager.ErrorManager, sessOpts *kv.SessionOptions, concurrency int, @@ -417,6 +419,7 @@ func NewDuplicateManager( tableName: tableName, splitCli: splitCli, tikvCli: tikvCli, + tikvCodec: tikvCodec, errorMgr: errMgr, decoder: decoder, logger: logger, @@ -439,6 +442,10 @@ func (m *DuplicateManager) RecordDataConflictError(ctx context.Context, stream D if err != nil { return errors.Trace(err) } + key, err = m.tikvCodec.DecodeKey(key) + if err != nil { + return errors.Trace(err) + } m.hasDupe.Store(true) h, err := m.decoder.DecodeHandleFromRowKey(key) @@ -504,6 +511,10 @@ func (m *DuplicateManager) RecordIndexConflictError(ctx context.Context, stream if err != nil { return errors.Trace(err) } + key, err = m.tikvCodec.DecodeKey(key) + if err != nil { + return errors.Trace(err) + } m.hasDupe.Store(true) h, err := m.decoder.DecodeHandleFromIndex(indexInfo, key, val) @@ -581,6 +592,11 @@ func (m *DuplicateManager) buildDupTasks() ([]dupTask, error) { putToTaskFunc(ranges, indexInfo) }) } + + // Encode all the tasks + for i := range tasks { + tasks[i].StartKey, tasks[i].EndKey = m.tikvCodec.EncodeRange(tasks[i].StartKey, tasks[i].EndKey) + } return tasks, nil } diff --git a/br/pkg/lightning/backend/local/engine.go b/br/pkg/lightning/backend/local/engine.go index a30f76c46aafb..84109b288a606 100644 --- a/br/pkg/lightning/backend/local/engine.go +++ b/br/pkg/lightning/backend/local/engine.go @@ -42,6 +42,7 @@ import ( "github.com/pingcap/tidb/br/pkg/membuf" "github.com/pingcap/tidb/parser/model" "github.com/pingcap/tidb/util/hack" + "github.com/tikv/client-go/v2/tikv" "go.uber.org/atomic" "go.uber.org/zap" "golang.org/x/exp/slices" @@ -1043,6 +1044,8 @@ type Writer struct { batchSize int64 lastMetaSeq int32 + + tikvCodec tikv.Codec } func (w *Writer) appendRowsSorted(kvs []common.KvPair) error { @@ -1125,6 +1128,10 @@ func (w *Writer) AppendRows(ctx context.Context, tableName string, columnNames [ return errorEngineClosed } + for i := range kvs { + kvs[i].Key = w.tikvCodec.EncodeKey(kvs[i].Key) + } + w.Lock() defer w.Unlock() diff --git a/br/pkg/lightning/backend/local/local.go b/br/pkg/lightning/backend/local/local.go index 6ceb269f80248..70344ffbe61f0 100644 --- a/br/pkg/lightning/backend/local/local.go +++ b/br/pkg/lightning/backend/local/local.go @@ -347,12 +347,13 @@ func checkTiFlashVersion(ctx context.Context, g glue.Glue, checkCtx *backend.Che type local struct { engines sync.Map // sync version of map[uuid.UUID]*Engine - pdCtl *pdutil.PdController - splitCli split.SplitClient - tikvCli *tikvclient.KVStore - tls *common.TLS - pdAddr string - g glue.Glue + pdCtl *pdutil.PdController + splitCli split.SplitClient + tikvCli *tikvclient.KVStore + tls *common.TLS + pdAddr string + g glue.Glue + tikvCodec tikvclient.Codec localStoreDir string @@ -416,6 +417,7 @@ func NewLocalBackend( g glue.Glue, maxOpenFiles int, errorMgr *errormanager.ErrorManager, + keyspaceName string, ) (backend.Backend, error) { localFile := cfg.TikvImporter.SortedKVDir rangeConcurrency := cfg.TikvImporter.RangeConcurrency @@ -457,8 +459,19 @@ func NewLocalBackend( if err != nil { return backend.MakeBackend(nil), common.ErrCreateKVClient.Wrap(err).GenWithStackByArgs() } - rpcCli := tikvclient.NewRPCClient(tikvclient.WithSecurity(tls.ToTiKVSecurityConfig())) - pdCliForTiKV := tikvclient.NewCodecPDClient(tikvclient.ModeTxn, pdCtl.GetPDClient()) + + var pdCliForTiKV *tikvclient.CodecPDClient + if keyspaceName == "" { + pdCliForTiKV = tikvclient.NewCodecPDClient(tikvclient.ModeTxn, pdCtl.GetPDClient()) + } else { + pdCliForTiKV, err = tikvclient.NewCodecPDClientWithKeyspace(tikvclient.ModeTxn, pdCtl.GetPDClient(), keyspaceName) + if err != nil { + return backend.MakeBackend(nil), common.ErrCreatePDClient.Wrap(err).GenWithStackByArgs() + } + } + + tikvCodec := pdCliForTiKV.GetCodec() + rpcCli := tikvclient.NewRPCClient(tikvclient.WithSecurity(tls.ToTiKVSecurityConfig()), tikvclient.WithCodec(tikvCodec)) tikvCli, err := tikvclient.NewKVStore("lightning-local-backend", pdCliForTiKV, spkv, rpcCli) if err != nil { return backend.MakeBackend(nil), common.ErrCreateKVClient.Wrap(err).GenWithStackByArgs() @@ -481,13 +494,14 @@ func NewLocalBackend( LastAlloc = alloc } local := &local{ - engines: sync.Map{}, - pdCtl: pdCtl, - splitCli: splitCli, - tikvCli: tikvCli, - tls: tls, - pdAddr: cfg.TiDB.PdAddr, - g: g, + engines: sync.Map{}, + pdCtl: pdCtl, + splitCli: splitCli, + tikvCli: tikvCli, + tls: tls, + pdAddr: cfg.TiDB.PdAddr, + g: g, + tikvCodec: tikvCodec, localStoreDir: localFile, rangeConcurrency: worker.NewPool(ctx, rangeConcurrency, "range"), @@ -969,6 +983,7 @@ func (local *local) WriteToTiKV( Start: firstKey, End: lastKey, }, + ApiVersion: local.tikvCodec.GetAPIVersion(), } leaderID := region.Leader.GetId() @@ -1670,7 +1685,7 @@ func (local *local) CollectLocalDuplicateRows(ctx context.Context, tbl table.Tab }() atomicHasDupe := atomic.NewBool(false) - duplicateManager, err := NewDuplicateManager(tbl, tableName, local.splitCli, local.tikvCli, + duplicateManager, err := NewDuplicateManager(tbl, tableName, local.splitCli, local.tikvCli, local.tikvCodec, local.errorMgr, opts, local.dupeConcurrency, atomicHasDupe, log.FromContext(ctx)) if err != nil { return false, errors.Trace(err) @@ -1688,7 +1703,7 @@ func (local *local) CollectRemoteDuplicateRows(ctx context.Context, tbl table.Ta }() atomicHasDupe := atomic.NewBool(false) - duplicateManager, err := NewDuplicateManager(tbl, tableName, local.splitCli, local.tikvCli, + duplicateManager, err := NewDuplicateManager(tbl, tableName, local.splitCli, local.tikvCli, local.tikvCodec, local.errorMgr, opts, local.dupeConcurrency, atomicHasDupe, log.FromContext(ctx)) if err != nil { return false, errors.Trace(err) @@ -1885,16 +1900,17 @@ func (local *local) LocalWriter(ctx context.Context, cfg *backend.LocalWriterCon return nil, errors.Errorf("could not find engine for %s", engineUUID.String()) } engine := e.(*Engine) - return openLocalWriter(cfg, engine, local.localWriterMemCacheSize, local.bufferPool.NewBuffer()) + return openLocalWriter(cfg, engine, local.tikvCodec, local.localWriterMemCacheSize, local.bufferPool.NewBuffer()) } -func openLocalWriter(cfg *backend.LocalWriterConfig, engine *Engine, cacheSize int64, kvBuffer *membuf.Buffer) (*Writer, error) { +func openLocalWriter(cfg *backend.LocalWriterConfig, engine *Engine, tikvCodec tikvclient.Codec, cacheSize int64, kvBuffer *membuf.Buffer) (*Writer, error) { w := &Writer{ engine: engine, memtableSizeLimit: cacheSize, kvBuffer: kvBuffer, isKVSorted: cfg.IsKVSorted, isWriteBatchSorted: true, + tikvCodec: tikvCodec, } // pre-allocate a long enough buffer to avoid a lot of runtime.growslice // this can help save about 3% of CPU. diff --git a/br/pkg/lightning/backend/local/local_test.go b/br/pkg/lightning/backend/local/local_test.go index a485bdecaca4a..5f60086c9af77 100644 --- a/br/pkg/lightning/backend/local/local_test.go +++ b/br/pkg/lightning/backend/local/local_test.go @@ -47,6 +47,7 @@ import ( "github.com/pingcap/tidb/br/pkg/pdutil" "github.com/pingcap/tidb/br/pkg/restore/split" "github.com/pingcap/tidb/br/pkg/utils" + "github.com/pingcap/tidb/keyspace" tidbkv "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/sessionctx/stmtctx" "github.com/pingcap/tidb/tablecodec" @@ -332,7 +333,7 @@ func testLocalWriter(t *testing.T, needSort bool, partitialSort bool) { pool := membuf.NewPool() defer pool.Destroy() kvBuffer := pool.NewBuffer() - w, err := openLocalWriter(&backend.LocalWriterConfig{IsKVSorted: sorted}, f, 1024, kvBuffer) + w, err := openLocalWriter(&backend.LocalWriterConfig{IsKVSorted: sorted}, f, keyspace.CodecV1, 1024, kvBuffer) require.NoError(t, err) ctx := context.Background() diff --git a/br/pkg/lightning/lightning.go b/br/pkg/lightning/lightning.go index 46c38e112b57d..8be900aeae4e8 100644 --- a/br/pkg/lightning/lightning.go +++ b/br/pkg/lightning/lightning.go @@ -412,6 +412,33 @@ var ( taskCfgRecorderKey = "taskCfgRecorderKey" ) +func getKeyspaceName(g glue.Glue) (string, error) { + db, err := g.GetDB() + if err != nil { + return "", err + } + + rows, err := db.Query("show config where Type = 'tidb' and name = 'keyspace-name'") + if err != nil { + return "", err + } + defer rows.Close() + + var ( + _type string + _instance string + _name string + value string + ) + if rows.Next() { + err = rows.Scan(&_type, &_instance, &_name, &value) + } + if err != nil { + return "", err + } + return value, nil +} + func (l *Lightning) run(taskCtx context.Context, taskCfg *config.Config, o *options) (err error) { build.LogInfo(build.Lightning) o.logger.Info("cfg", zap.Stringer("cfg", taskCfg)) @@ -541,6 +568,13 @@ func (l *Lightning) run(taskCtx context.Context, taskCfg *config.Config, o *opti dbMetas := mdl.GetDatabases() web.BroadcastInitProgress(dbMetas) + keyspaceName, err := getKeyspaceName(g) + if err != nil { + o.logger.Error("fail to get keyspace name", zap.Error(err)) + return errors.Trace(err) + } + o.logger.Info("acquired keyspace name", zap.String("keyspaceName", keyspaceName)) + param := &restore.ControllerParam{ DBMetas: dbMetas, Status: &l.status, @@ -550,6 +584,7 @@ func (l *Lightning) run(taskCtx context.Context, taskCfg *config.Config, o *opti CheckpointStorage: o.checkpointStorage, CheckpointName: o.checkpointName, DupIndicator: o.dupIndicator, + KeyspaceName: keyspaceName, } var procedure *restore.Controller diff --git a/br/pkg/lightning/restore/restore.go b/br/pkg/lightning/restore/restore.go index 543eddc3435fd..7658cfbf006ab 100644 --- a/br/pkg/lightning/restore/restore.go +++ b/br/pkg/lightning/restore/restore.go @@ -231,6 +231,8 @@ type Controller struct { preInfoGetter PreRestoreInfoGetter precheckItemBuilder *PrecheckItemBuilder + + keyspaceName string } // LightningStatus provides the finished bytes and total bytes of the current task. @@ -266,6 +268,8 @@ type ControllerParam struct { CheckpointName string // DupIndicator can expose the duplicate detection result to the caller DupIndicator *atomic.Bool + // Keyspace name + KeyspaceName string } func NewRestoreController( @@ -353,7 +357,7 @@ func NewRestoreControllerWithPauser( } } - backend, err = local.NewLocalBackend(ctx, tls, cfg, p.Glue, maxOpenFiles, errorMgr) + backend, err = local.NewLocalBackend(ctx, tls, cfg, p.Glue, maxOpenFiles, errorMgr, p.KeyspaceName) if err != nil { return nil, common.NormalizeOrWrapErr(common.ErrUnknown, err) } @@ -437,6 +441,8 @@ func NewRestoreControllerWithPauser( preInfoGetter: preInfoGetter, precheckItemBuilder: preCheckBuilder, + + keyspaceName: p.KeyspaceName, } return rc, nil @@ -1500,7 +1506,7 @@ func (rc *Controller) restoreTables(ctx context.Context) (finalErr error) { // Disable GC because TiDB enables GC already. kvStore, err = driver.TiKVDriver{}.OpenWithOptions( - fmt.Sprintf("tikv://%s?disableGC=true", rc.cfg.TiDB.PdAddr), + fmt.Sprintf("tikv://%s?disableGC=true&keyspaceName=%s", rc.cfg.TiDB.PdAddr, rc.keyspaceName), driver.WithSecurity(rc.tls.ToTiKVSecurityConfig()), ) if err != nil { diff --git a/ddl/ingest/backend.go b/ddl/ingest/backend.go index 26344359dd6b9..a94639d89d6bb 100644 --- a/ddl/ingest/backend.go +++ b/ddl/ingest/backend.go @@ -19,7 +19,7 @@ import ( "github.com/pingcap/tidb/br/pkg/lightning/backend" "github.com/pingcap/tidb/br/pkg/lightning/backend/kv" - "github.com/pingcap/tidb/br/pkg/lightning/config" + lightning "github.com/pingcap/tidb/br/pkg/lightning/config" tikv "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/parser/mysql" "github.com/pingcap/tidb/table" @@ -33,7 +33,7 @@ type BackendContext struct { jobID int64 backend *backend.Backend ctx context.Context - cfg *config.Config + cfg *lightning.Config EngMgr engineManager sysVars map[string]string diskRoot DiskRoot @@ -99,7 +99,7 @@ func (bc *BackendContext) Flush(indexID int64) error { logutil.BgLogger().Info(LitInfoUnsafeImport, zap.Int64("index ID", indexID), zap.Uint64("current disk usage", bc.diskRoot.CurrentUsage()), zap.Uint64("max disk quota", bc.diskRoot.MaxQuota())) - err = bc.backend.UnsafeImportAndReset(bc.ctx, ei.uuid, int64(config.SplitRegionSize)*int64(config.MaxSplitRegionSizeRatio), int64(config.SplitRegionKeys)) + err = bc.backend.UnsafeImportAndReset(bc.ctx, ei.uuid, int64(lightning.SplitRegionSize)*int64(lightning.MaxSplitRegionSizeRatio), int64(lightning.SplitRegionKeys)) if err != nil { logutil.BgLogger().Error(LitErrIngestDataErr, zap.Int64("index ID", indexID), zap.Error(err), zap.Uint64("current disk usage", bc.diskRoot.CurrentUsage()), diff --git a/ddl/ingest/backend_mgr.go b/ddl/ingest/backend_mgr.go index 14bb4fb3aa67a..4ed3be27cbd32 100644 --- a/ddl/ingest/backend_mgr.go +++ b/ddl/ingest/backend_mgr.go @@ -56,7 +56,7 @@ func (m *backendCtxManager) Register(ctx context.Context, unique bool, jobID int if !ok { return nil, genBackendAllocMemFailedErr(m.memRoot, jobID) } - cfg, err := generateLightningConfig(m.memRoot, jobID, unique) + cfg, err := genConfig(m.memRoot, jobID, unique) if err != nil { logutil.BgLogger().Warn(LitWarnConfigError, zap.Int64("job ID", jobID), zap.Error(err)) return nil, err @@ -67,7 +67,7 @@ func (m *backendCtxManager) Register(ctx context.Context, unique bool, jobID int return nil, err } - bcCtx := newBackendContext(ctx, jobID, &bd, cfg, defaultImportantVariables, m.memRoot, m.diskRoot) + bcCtx := newBackendContext(ctx, jobID, &bd, cfg.Lightning, defaultImportantVariables, m.memRoot, m.diskRoot) m.Store(jobID, bcCtx) m.memRoot.Consume(StructSizeBackendCtx) @@ -80,15 +80,16 @@ func (m *backendCtxManager) Register(ctx context.Context, unique bool, jobID int return bc, nil } -func createLocalBackend(ctx context.Context, cfg *config.Config, glue glue.Glue) (backend.Backend, error) { - tls, err := cfg.ToTLS() +func createLocalBackend(ctx context.Context, cfg *Config, glue glue.Glue) (backend.Backend, error) { + tls, err := cfg.Lightning.ToTLS() if err != nil { logutil.BgLogger().Error(LitErrCreateBackendFail, zap.Error(err)) return backend.Backend{}, err } - errorMgr := errormanager.New(nil, cfg, log.Logger{Logger: logutil.BgLogger()}) - return local.NewLocalBackend(ctx, tls, cfg, glue, int(LitRLimit), errorMgr) + logutil.BgLogger().Info("[ddl] create local backend for adding index", zap.String("keyspaceName", cfg.KeyspaceName)) + errorMgr := errormanager.New(nil, cfg.Lightning, log.Logger{Logger: logutil.BgLogger()}) + return local.NewLocalBackend(ctx, tls, cfg.Lightning, glue, int(LitRLimit), errorMgr, cfg.KeyspaceName) } func newBackendContext(ctx context.Context, jobID int64, be *backend.Backend, diff --git a/ddl/ingest/config.go b/ddl/ingest/config.go index e9c1458b1ab0a..39a6c28410ee5 100644 --- a/ddl/ingest/config.go +++ b/ddl/ingest/config.go @@ -20,8 +20,8 @@ import ( "github.com/pingcap/tidb/br/pkg/lightning/backend" "github.com/pingcap/tidb/br/pkg/lightning/checkpoints" - "github.com/pingcap/tidb/br/pkg/lightning/config" - tidbconf "github.com/pingcap/tidb/config" + lightning "github.com/pingcap/tidb/br/pkg/lightning/config" + tidb "github.com/pingcap/tidb/config" "github.com/pingcap/tidb/util/logutil" "github.com/pingcap/tidb/util/size" "go.uber.org/zap" @@ -30,10 +30,16 @@ import ( // ImporterRangeConcurrencyForTest is only used for test. var ImporterRangeConcurrencyForTest *atomic.Int32 -func generateLightningConfig(memRoot MemRoot, jobID int64, unique bool) (*config.Config, error) { - tidbCfg := tidbconf.GetGlobalConfig() - cfg := config.NewConfig() - cfg.TikvImporter.Backend = config.BackendLocal +// Config is the configuration for the lightning local backend used in DDL. +type Config struct { + Lightning *lightning.Config + KeyspaceName string +} + +func genConfig(memRoot MemRoot, jobID int64, unique bool) (*Config, error) { + tidbCfg := tidb.GetGlobalConfig() + cfg := lightning.NewConfig() + cfg.TikvImporter.Backend = lightning.BackendLocal // Each backend will build a single dir in lightning dir. cfg.TikvImporter.SortedKVDir = filepath.Join(LitSortPath, encodeBackendTag(jobID)) if ImporterRangeConcurrencyForTest != nil { @@ -47,9 +53,9 @@ func generateLightningConfig(memRoot MemRoot, jobID int64, unique bool) (*config adjustImportMemory(memRoot, cfg) cfg.Checkpoint.Enable = true if unique { - cfg.TikvImporter.DuplicateResolution = config.DupeResAlgRecord + cfg.TikvImporter.DuplicateResolution = lightning.DupeResAlgRecord } else { - cfg.TikvImporter.DuplicateResolution = config.DupeResAlgNone + cfg.TikvImporter.DuplicateResolution = lightning.DupeResAlgNone } cfg.TiDB.PdAddr = tidbCfg.Path cfg.TiDB.Host = "127.0.0.1" @@ -59,7 +65,12 @@ func generateLightningConfig(memRoot MemRoot, jobID int64, unique bool) (*config cfg.Security.CertPath = tidbCfg.Security.ClusterSSLCert cfg.Security.KeyPath = tidbCfg.Security.ClusterSSLKey - return cfg, err + c := &Config{ + Lightning: cfg, + KeyspaceName: tidb.GetGlobalKeyspaceName(), + } + + return c, err } var ( @@ -83,7 +94,7 @@ func generateLocalEngineConfig(id int64, dbName, tbName string) *backend.EngineC } // adjustImportMemory adjusts the lightning memory parameters according to the memory root's max limitation. -func adjustImportMemory(memRoot MemRoot, cfg *config.Config) { +func adjustImportMemory(memRoot MemRoot, cfg *lightning.Config) { var scale int64 // Try aggressive resource usage successful. if tryAggressiveMemory(memRoot, cfg) { @@ -104,8 +115,8 @@ func adjustImportMemory(memRoot MemRoot, cfg *config.Config) { return } - cfg.TikvImporter.LocalWriterMemCacheSize /= config.ByteSize(scale) - cfg.TikvImporter.EngineMemCacheSize /= config.ByteSize(scale) + cfg.TikvImporter.LocalWriterMemCacheSize /= lightning.ByteSize(scale) + cfg.TikvImporter.EngineMemCacheSize /= lightning.ByteSize(scale) // TODO: adjust range concurrency number to control total concurrency in the future. logutil.BgLogger().Info(LitInfoChgMemSetting, zap.Int64("local writer memory cache size", int64(cfg.TikvImporter.LocalWriterMemCacheSize)), @@ -114,7 +125,7 @@ func adjustImportMemory(memRoot MemRoot, cfg *config.Config) { } // tryAggressiveMemory lightning memory parameters according memory root's max limitation. -func tryAggressiveMemory(memRoot MemRoot, cfg *config.Config) bool { +func tryAggressiveMemory(memRoot MemRoot, cfg *lightning.Config) bool { var defaultMemSize int64 defaultMemSize = int64(int(cfg.TikvImporter.LocalWriterMemCacheSize) * cfg.TikvImporter.RangeConcurrency) defaultMemSize += int64(cfg.TikvImporter.EngineMemCacheSize) diff --git a/store/driver/tikv_driver.go b/store/driver/tikv_driver.go index bf0f1272184dd..a39d287129dd9 100644 --- a/store/driver/tikv_driver.go +++ b/store/driver/tikv_driver.go @@ -88,7 +88,6 @@ func WithPDClientConfig(client config.PDClient) Option { // TiKVDriver implements engine TiKV. type TiKVDriver struct { - keyspaceName string pdConfig config.PDClient security config.Security tikvConfig config.TiKVClient From 3436e4bfa41d220274f45e37b7afa0a402147e9f Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Tue, 17 Jan 2023 11:15:06 +0800 Subject: [PATCH 02/18] fix checksum in sql2kv Signed-off-by: iosmanthus --- br/pkg/lightning/restore/restore.go | 12 +++++++---- br/pkg/lightning/verification/checksum.go | 26 +++++++++++++++++------ 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/br/pkg/lightning/restore/restore.go b/br/pkg/lightning/restore/restore.go index 7658cfbf006ab..52125e7c3ebf7 100644 --- a/br/pkg/lightning/restore/restore.go +++ b/br/pkg/lightning/restore/restore.go @@ -2339,7 +2339,11 @@ func (cr *chunkRestore) deliverLoop( var startRealOffset, currRealOffset int64 // save to 0 at first for hasMoreKVs { - var dataChecksum, indexChecksum verify.KVChecksum + var ( + c = t.kvStore.GetCodec() + dataChecksum = verify.NewKVChecksumWithKeyspace(c) + indexChecksum = verify.NewKVChecksumWithKeyspace(c) + ) var columns []string var kvPacket []deliveredKVs // init these two field as checkpoint current value, so even if there are no kv pairs delivered, @@ -2366,7 +2370,7 @@ func (cr *chunkRestore) deliverLoop( hasMoreKVs = false break populate } - p.kvs.ClassifyAndAppend(&dataKVs, &dataChecksum, &indexKVs, &indexChecksum) + p.kvs.ClassifyAndAppend(&dataKVs, dataChecksum, &indexKVs, indexChecksum) columns = p.columns currOffset = p.offset currRealOffset = p.realOffset @@ -2433,8 +2437,8 @@ func (cr *chunkRestore) deliverLoop( // No need to apply a lock since this is the only thread updating `cr.chunk.**`. // In local mode, we should write these checkpoints after engine flushed. lastOffset := cr.chunk.Chunk.Offset - cr.chunk.Checksum.Add(&dataChecksum) - cr.chunk.Checksum.Add(&indexChecksum) + cr.chunk.Checksum.Add(dataChecksum) + cr.chunk.Checksum.Add(indexChecksum) cr.chunk.Chunk.Offset = currOffset cr.chunk.Chunk.RealOffset = currRealOffset cr.chunk.Chunk.PrevRowIDMax = rowID diff --git a/br/pkg/lightning/verification/checksum.go b/br/pkg/lightning/verification/checksum.go index 0a44177f80fe4..9eb2130074eec 100644 --- a/br/pkg/lightning/verification/checksum.go +++ b/br/pkg/lightning/verification/checksum.go @@ -19,15 +19,18 @@ import ( "hash/crc64" "github.com/pingcap/tidb/br/pkg/lightning/common" + "github.com/tikv/client-go/v2/tikv" "go.uber.org/zap/zapcore" ) var ecmaTable = crc64.MakeTable(crc64.ECMA) type KVChecksum struct { - bytes uint64 - kvs uint64 - checksum uint64 + base uint64 + prefixLen int + bytes uint64 + kvs uint64 + checksum uint64 } func NewKVChecksum(checksum uint64) *KVChecksum { @@ -36,6 +39,14 @@ func NewKVChecksum(checksum uint64) *KVChecksum { } } +func NewKVChecksumWithKeyspace(k tikv.Codec) *KVChecksum { + ks := k.GetKeyspace() + return &KVChecksum{ + base: crc64.Update(0, ecmaTable, ks), + prefixLen: len(ks), + } +} + func MakeKVChecksum(bytes uint64, kvs uint64, checksum uint64) KVChecksum { return KVChecksum{ bytes: bytes, @@ -45,10 +56,10 @@ func MakeKVChecksum(bytes uint64, kvs uint64, checksum uint64) KVChecksum { } func (c *KVChecksum) UpdateOne(kv common.KvPair) { - sum := crc64.Update(0, ecmaTable, kv.Key) + sum := crc64.Update(c.base, ecmaTable, kv.Key) sum = crc64.Update(sum, ecmaTable, kv.Val) - c.bytes += uint64(len(kv.Key) + len(kv.Val)) + c.bytes += uint64(c.prefixLen + len(kv.Key) + len(kv.Val)) c.kvs++ c.checksum ^= sum } @@ -62,11 +73,12 @@ func (c *KVChecksum) Update(kvs []common.KvPair) { ) for _, pair := range kvs { - sum = crc64.Update(0, ecmaTable, pair.Key) + sum = crc64.Update(c.base, ecmaTable, pair.Key) sum = crc64.Update(sum, ecmaTable, pair.Val) checksum ^= sum kvNum++ - bytes += (len(pair.Key) + len(pair.Val)) + bytes += c.prefixLen + bytes += len(pair.Key) + len(pair.Val) } c.bytes += uint64(bytes) From dbe57d6d8c0c89490c40415a121f8beee72d43e0 Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Sat, 28 Jan 2023 16:06:32 +0800 Subject: [PATCH 03/18] address comments from tangenta Signed-off-by: iosmanthus --- br/pkg/lightning/backend/kv/BUILD.bazel | 1 - br/pkg/lightning/backend/kv/sql2kv_test.go | 3 --- br/pkg/lightning/verification/BUILD.bazel | 1 + ddl/ingest/backend_mgr.go | 2 +- 4 files changed, 2 insertions(+), 5 deletions(-) diff --git a/br/pkg/lightning/backend/kv/BUILD.bazel b/br/pkg/lightning/backend/kv/BUILD.bazel index a8c415f5221fd..b0da8a0e7deb4 100644 --- a/br/pkg/lightning/backend/kv/BUILD.bazel +++ b/br/pkg/lightning/backend/kv/BUILD.bazel @@ -58,7 +58,6 @@ go_test( "//br/pkg/lightning/log", "//br/pkg/lightning/verification", "//ddl", - "//keyspace", "//kv", "//meta/autoid", "//parser", diff --git a/br/pkg/lightning/backend/kv/sql2kv_test.go b/br/pkg/lightning/backend/kv/sql2kv_test.go index 5b8e5d18ebd91..8c14731cf82dd 100644 --- a/br/pkg/lightning/backend/kv/sql2kv_test.go +++ b/br/pkg/lightning/backend/kv/sql2kv_test.go @@ -25,7 +25,6 @@ import ( "github.com/pingcap/tidb/br/pkg/lightning/log" "github.com/pingcap/tidb/br/pkg/lightning/verification" "github.com/pingcap/tidb/ddl" - "github.com/pingcap/tidb/keyspace" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/meta/autoid" "github.com/pingcap/tidb/parser" @@ -43,8 +42,6 @@ import ( "go.uber.org/zap/zapcore" ) -var defaultCodec = keyspace.CodecV1 - func TestMarshal(t *testing.T) { nullDatum := types.Datum{} nullDatum.SetNull() diff --git a/br/pkg/lightning/verification/BUILD.bazel b/br/pkg/lightning/verification/BUILD.bazel index 9f308aeb81e11..122e4b0e8535f 100644 --- a/br/pkg/lightning/verification/BUILD.bazel +++ b/br/pkg/lightning/verification/BUILD.bazel @@ -7,6 +7,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//br/pkg/lightning/common", + "@com_github_tikv_client_go_v2//tikv", "@org_uber_go_zap//zapcore", ], ) diff --git a/ddl/ingest/backend_mgr.go b/ddl/ingest/backend_mgr.go index 4ed3be27cbd32..49788c9760b58 100644 --- a/ddl/ingest/backend_mgr.go +++ b/ddl/ingest/backend_mgr.go @@ -87,7 +87,7 @@ func createLocalBackend(ctx context.Context, cfg *Config, glue glue.Glue) (backe return backend.Backend{}, err } - logutil.BgLogger().Info("[ddl] create local backend for adding index", zap.String("keyspaceName", cfg.KeyspaceName)) + logutil.BgLogger().Info("[ddl-ingest] create local backend for adding index", zap.String("keyspaceName", cfg.KeyspaceName)) errorMgr := errormanager.New(nil, cfg.Lightning, log.Logger{Logger: logutil.BgLogger()}) return local.NewLocalBackend(ctx, tls, cfg.Lightning, glue, int(LitRLimit), errorMgr, cfg.KeyspaceName) } From bed74f2be507c374c100434da011af935a4b7837 Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Sat, 28 Jan 2023 16:29:33 +0800 Subject: [PATCH 04/18] fix lint Signed-off-by: iosmanthus --- br/pkg/lightning/backend/local/duplicate_test.go | 3 ++- br/pkg/lightning/lightning.go | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/br/pkg/lightning/backend/local/duplicate_test.go b/br/pkg/lightning/backend/local/duplicate_test.go index d1db76aae92f8..415a3bb8425d0 100644 --- a/br/pkg/lightning/backend/local/duplicate_test.go +++ b/br/pkg/lightning/backend/local/duplicate_test.go @@ -16,6 +16,7 @@ package local_test import ( "context" + "github.com/pingcap/tidb/keyspace" "testing" lkv "github.com/pingcap/tidb/br/pkg/lightning/backend/kv" @@ -52,7 +53,7 @@ func TestBuildDupTask(t *testing.T) { {&lkv.SessionOptions{IndexID: info.Indices[1].ID}, false}, } for _, tc := range testCases { - dupMgr, err := local.NewDuplicateManager(tbl, "t", nil, nil, nil, + dupMgr, err := local.NewDuplicateManager(tbl, "t", nil, nil, keyspace.CodecV1, nil, tc.sessOpt, 4, atomic.NewBool(false), log.FromContext(context.Background())) require.NoError(t, err) tasks, err := local.BuildDuplicateTaskForTest(dupMgr) diff --git a/br/pkg/lightning/lightning.go b/br/pkg/lightning/lightning.go index 8be900aeae4e8..a732017b7fb4e 100644 --- a/br/pkg/lightning/lightning.go +++ b/br/pkg/lightning/lightning.go @@ -422,6 +422,7 @@ func getKeyspaceName(g glue.Glue) (string, error) { if err != nil { return "", err } + //nolint: errcheck defer rows.Close() var ( From e8bc6e487eb74695d847aca814bf7ca9ad3e3146 Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Sat, 28 Jan 2023 18:16:50 +0800 Subject: [PATCH 05/18] fix goimports Signed-off-by: iosmanthus --- br/pkg/lightning/backend/local/duplicate_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/br/pkg/lightning/backend/local/duplicate_test.go b/br/pkg/lightning/backend/local/duplicate_test.go index 415a3bb8425d0..7c7d8a6182e25 100644 --- a/br/pkg/lightning/backend/local/duplicate_test.go +++ b/br/pkg/lightning/backend/local/duplicate_test.go @@ -16,13 +16,13 @@ package local_test import ( "context" - "github.com/pingcap/tidb/keyspace" "testing" lkv "github.com/pingcap/tidb/br/pkg/lightning/backend/kv" "github.com/pingcap/tidb/br/pkg/lightning/backend/local" "github.com/pingcap/tidb/br/pkg/lightning/log" "github.com/pingcap/tidb/ddl" + "github.com/pingcap/tidb/keyspace" "github.com/pingcap/tidb/parser" "github.com/pingcap/tidb/parser/ast" "github.com/pingcap/tidb/parser/model" From c1ed3b634257f47776b7ce502aa5e428d659084e Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Sat, 28 Jan 2023 18:32:40 +0800 Subject: [PATCH 06/18] fix lint Signed-off-by: iosmanthus --- br/pkg/lightning/lightning.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/br/pkg/lightning/lightning.go b/br/pkg/lightning/lightning.go index a732017b7fb4e..b08453ed8239f 100644 --- a/br/pkg/lightning/lightning.go +++ b/br/pkg/lightning/lightning.go @@ -433,11 +433,12 @@ func getKeyspaceName(g glue.Glue) (string, error) { ) if rows.Next() { err = rows.Scan(&_type, &_instance, &_name, &value) + if err != nil { + return "", err + } } - if err != nil { - return "", err - } - return value, nil + + return value, rows.Err() } func (l *Lightning) run(taskCtx context.Context, taskCfg *config.Config, o *options) (err error) { From e8496a38c6fed6b5b99d75959e7234c0fac4150e Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Sun, 29 Jan 2023 20:30:53 +0800 Subject: [PATCH 07/18] return empty keyspace name while db is nil Signed-off-by: iosmanthus --- br/pkg/lightning/lightning.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/br/pkg/lightning/lightning.go b/br/pkg/lightning/lightning.go index b08453ed8239f..ae83d41efd7f6 100644 --- a/br/pkg/lightning/lightning.go +++ b/br/pkg/lightning/lightning.go @@ -417,6 +417,9 @@ func getKeyspaceName(g glue.Glue) (string, error) { if err != nil { return "", err } + if db == nil { + return "", nil + } rows, err := db.Query("show config where Type = 'tidb' and name = 'keyspace-name'") if err != nil { From d77cdb18447c468ff0a40f14d1bb432b47717a1c Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Mon, 30 Jan 2023 17:24:44 +0800 Subject: [PATCH 08/18] fix default codec for lightning test Signed-off-by: iosmanthus --- br/pkg/lightning/backend/local/local_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/br/pkg/lightning/backend/local/local_test.go b/br/pkg/lightning/backend/local/local_test.go index 5f60086c9af77..04d63ffb7479b 100644 --- a/br/pkg/lightning/backend/local/local_test.go +++ b/br/pkg/lightning/backend/local/local_test.go @@ -1291,6 +1291,7 @@ func TestCheckPeersBusy(t *testing.T) { bufferPool: membuf.NewPool(), supportMultiIngest: true, shouldCheckWriteStall: true, + tikvCodec: keyspace.CodecV1, } db, tmpPath := makePebbleDB(t, nil) From d29c443cdcc6e1ba1f2c08c1a3424e79cf33ec5d Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Tue, 31 Jan 2023 12:29:29 +0800 Subject: [PATCH 09/18] fix default codec for TestChunkRestoreSuite Signed-off-by: iosmanthus --- br/pkg/lightning/restore/restore.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/br/pkg/lightning/restore/restore.go b/br/pkg/lightning/restore/restore.go index 52125e7c3ebf7..8731dbe0e3b09 100644 --- a/br/pkg/lightning/restore/restore.go +++ b/br/pkg/lightning/restore/restore.go @@ -54,6 +54,7 @@ import ( "github.com/pingcap/tidb/br/pkg/utils" "github.com/pingcap/tidb/br/pkg/version" "github.com/pingcap/tidb/br/pkg/version/build" + "github.com/pingcap/tidb/keyspace" tidbkv "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/meta/autoid" "github.com/pingcap/tidb/parser/model" @@ -2340,10 +2341,13 @@ func (cr *chunkRestore) deliverLoop( for hasMoreKVs { var ( - c = t.kvStore.GetCodec() + c = keyspace.CodecV1 dataChecksum = verify.NewKVChecksumWithKeyspace(c) indexChecksum = verify.NewKVChecksumWithKeyspace(c) ) + if t.kvStore != nil { + c = t.kvStore.GetCodec() + } var columns []string var kvPacket []deliveredKVs // init these two field as checkpoint current value, so even if there are no kv pairs delivered, From 3a37ce7b7652f7af0febfc98279aeb6806ac0ead Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Tue, 31 Jan 2023 12:51:10 +0800 Subject: [PATCH 10/18] fix lint Signed-off-by: iosmanthus --- br/pkg/lightning/restore/restore.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/br/pkg/lightning/restore/restore.go b/br/pkg/lightning/restore/restore.go index 8731dbe0e3b09..64807d0887119 100644 --- a/br/pkg/lightning/restore/restore.go +++ b/br/pkg/lightning/restore/restore.go @@ -64,6 +64,7 @@ import ( "github.com/pingcap/tidb/util/mathutil" regexprrouter "github.com/pingcap/tidb/util/regexpr-router" "github.com/pingcap/tidb/util/set" + tikvclient "github.com/tikv/client-go/v2/tikv" pd "github.com/tikv/pd/client" "go.uber.org/atomic" "go.uber.org/multierr" @@ -2341,12 +2342,14 @@ func (cr *chunkRestore) deliverLoop( for hasMoreKVs { var ( - c = keyspace.CodecV1 + c tikvclient.Codec dataChecksum = verify.NewKVChecksumWithKeyspace(c) indexChecksum = verify.NewKVChecksumWithKeyspace(c) ) if t.kvStore != nil { c = t.kvStore.GetCodec() + } else { + c = keyspace.CodecV1 } var columns []string var kvPacket []deliveredKVs From b7a9c10f580af3170a66551f060a1a6c128a0e48 Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Tue, 31 Jan 2023 14:14:00 +0800 Subject: [PATCH 11/18] fix unit test panic Signed-off-by: iosmanthus --- br/pkg/lightning/restore/restore.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/br/pkg/lightning/restore/restore.go b/br/pkg/lightning/restore/restore.go index 64807d0887119..fb709549eaf0a 100644 --- a/br/pkg/lightning/restore/restore.go +++ b/br/pkg/lightning/restore/restore.go @@ -2341,16 +2341,16 @@ func (cr *chunkRestore) deliverLoop( var startRealOffset, currRealOffset int64 // save to 0 at first for hasMoreKVs { + var c tikvclient.Codec + if t.kvStore == nil { + c = keyspace.CodecV1 + } else { + c = t.kvStore.GetCodec() + } var ( - c tikvclient.Codec dataChecksum = verify.NewKVChecksumWithKeyspace(c) indexChecksum = verify.NewKVChecksumWithKeyspace(c) ) - if t.kvStore != nil { - c = t.kvStore.GetCodec() - } else { - c = keyspace.CodecV1 - } var columns []string var kvPacket []deliveredKVs // init these two field as checkpoint current value, so even if there are no kv pairs delivered, From 77f1a5bca226e257a2d807b43c89a52874dc0eea Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Tue, 31 Jan 2023 15:06:42 +0800 Subject: [PATCH 12/18] make bazel_prepare Signed-off-by: iosmanthus --- br/pkg/lightning/restore/BUILD.bazel | 2 ++ 1 file changed, 2 insertions(+) diff --git a/br/pkg/lightning/restore/BUILD.bazel b/br/pkg/lightning/restore/BUILD.bazel index 06e503e0519db..09f50083d4a60 100644 --- a/br/pkg/lightning/restore/BUILD.bazel +++ b/br/pkg/lightning/restore/BUILD.bazel @@ -45,6 +45,7 @@ go_library( "//br/pkg/version/build", "//ddl", "//errno", + "//keyspace", "//kv", "//meta/autoid", "//parser", @@ -77,6 +78,7 @@ go_library( "@com_github_pingcap_kvproto//pkg/metapb", "@com_github_pingcap_tipb//go-tipb", "@com_github_tikv_client_go_v2//oracle", + "@com_github_tikv_client_go_v2//tikv", "@com_github_tikv_pd_client//:client", "@io_etcd_go_etcd_client_v3//:client", "@org_golang_google_grpc//:grpc", From 7133d1eb239ef78b81b58a83fe06cb49853d13fc Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Tue, 31 Jan 2023 15:46:50 +0800 Subject: [PATCH 13/18] revert .gitignore for test Signed-off-by: iosmanthus --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index c5e8d396c848f..35af372bcccad 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,6 @@ out bazel-bin bazel-out bazel-testlogs -bazel-tidb* +bazel-tidb .ijwb/ /oom_record/ From 53050be99711f05730bea589a89cfeecfdaef326 Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Tue, 31 Jan 2023 15:51:00 +0800 Subject: [PATCH 14/18] fix lint Signed-off-by: iosmanthus --- br/pkg/lightning/restore/restore.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/br/pkg/lightning/restore/restore.go b/br/pkg/lightning/restore/restore.go index fb709549eaf0a..1032419ab777f 100644 --- a/br/pkg/lightning/restore/restore.go +++ b/br/pkg/lightning/restore/restore.go @@ -64,7 +64,6 @@ import ( "github.com/pingcap/tidb/util/mathutil" regexprrouter "github.com/pingcap/tidb/util/regexpr-router" "github.com/pingcap/tidb/util/set" - tikvclient "github.com/tikv/client-go/v2/tikv" pd "github.com/tikv/pd/client" "go.uber.org/atomic" "go.uber.org/multierr" @@ -2341,10 +2340,8 @@ func (cr *chunkRestore) deliverLoop( var startRealOffset, currRealOffset int64 // save to 0 at first for hasMoreKVs { - var c tikvclient.Codec - if t.kvStore == nil { - c = keyspace.CodecV1 - } else { + c := keyspace.CodecV1 + if t.kvStore != nil { c = t.kvStore.GetCodec() } var ( From bb9057ffc4e62c3e61e11d2c4c9e1bbb4ca1b06c Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Tue, 31 Jan 2023 15:51:44 +0800 Subject: [PATCH 15/18] make bazel_prepare Signed-off-by: iosmanthus --- br/pkg/lightning/restore/BUILD.bazel | 1 - 1 file changed, 1 deletion(-) diff --git a/br/pkg/lightning/restore/BUILD.bazel b/br/pkg/lightning/restore/BUILD.bazel index 09f50083d4a60..647c4cea4d191 100644 --- a/br/pkg/lightning/restore/BUILD.bazel +++ b/br/pkg/lightning/restore/BUILD.bazel @@ -78,7 +78,6 @@ go_library( "@com_github_pingcap_kvproto//pkg/metapb", "@com_github_pingcap_tipb//go-tipb", "@com_github_tikv_client_go_v2//oracle", - "@com_github_tikv_client_go_v2//tikv", "@com_github_tikv_pd_client//:client", "@io_etcd_go_etcd_client_v3//:client", "@org_golang_google_grpc//:grpc", From 8fb89ef88ba754f6427857d578f88916d3dde911 Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Tue, 31 Jan 2023 16:22:01 +0800 Subject: [PATCH 16/18] fix bazel ignore path Signed-off-by: iosmanthus --- .github/licenserc.yml | 1 + .gitignore | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/licenserc.yml b/.github/licenserc.yml index e1add7017983b..7b3bae8cfbe49 100644 --- a/.github/licenserc.yml +++ b/.github/licenserc.yml @@ -5,6 +5,7 @@ header: paths-ignore: - "docs/" - "br/" + - "/bazel-*" - ".gitignore" - ".dockerignore" - ".gitattributes" diff --git a/.gitignore b/.gitignore index 35af372bcccad..f7f0d72cca7f7 100644 --- a/.gitignore +++ b/.gitignore @@ -30,9 +30,6 @@ export-20*/ # Files generated when testing out /_bazel -bazel-bin -bazel-out -bazel-testlogs -bazel-tidb +/bazel-* .ijwb/ /oom_record/ From 96426c3675e522ec0ed55deea99baf2c3a691909 Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Tue, 31 Jan 2023 18:35:29 +0800 Subject: [PATCH 17/18] fix bazel ignore path Signed-off-by: iosmanthus --- .github/licenserc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/licenserc.yml b/.github/licenserc.yml index 7b3bae8cfbe49..08e1afc3d2590 100644 --- a/.github/licenserc.yml +++ b/.github/licenserc.yml @@ -5,7 +5,7 @@ header: paths-ignore: - "docs/" - "br/" - - "/bazel-*" + - "bazel-*/" - ".gitignore" - ".dockerignore" - ".gitattributes" From 01c327f8929e9b500d7f1ef3dc8244c3f75bcc1a Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Tue, 31 Jan 2023 19:13:14 +0800 Subject: [PATCH 18/18] revert .gitignore for test Signed-off-by: iosmanthus --- .github/licenserc.yml | 1 - .gitignore | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/licenserc.yml b/.github/licenserc.yml index 08e1afc3d2590..e1add7017983b 100644 --- a/.github/licenserc.yml +++ b/.github/licenserc.yml @@ -5,7 +5,6 @@ header: paths-ignore: - "docs/" - "br/" - - "bazel-*/" - ".gitignore" - ".dockerignore" - ".gitattributes" diff --git a/.gitignore b/.gitignore index f7f0d72cca7f7..35af372bcccad 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,9 @@ export-20*/ # Files generated when testing out /_bazel -/bazel-* +bazel-bin +bazel-out +bazel-testlogs +bazel-tidb .ijwb/ /oom_record/