Skip to content

Commit

Permalink
Use TSO instead of seconds in gc_delete_range table (#7610) (#7618)
Browse files Browse the repository at this point in the history
  • Loading branch information
MyonKeminta authored and ngaut committed Sep 5, 2018
1 parent 131fe7e commit 389131a
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 9 deletions.
12 changes: 5 additions & 7 deletions ddl/delete_range.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import (
"github.com/pingcap/tidb/model"
"github.com/pingcap/tidb/mysql"
"github.com/pingcap/tidb/sessionctx"
"github.com/pingcap/tidb/store/tikv/oracle"
"github.com/pingcap/tidb/tablecodec"
"github.com/pingcap/tidb/terror"
"github.com/pingcap/tidb/util/sqlexec"
Expand Down Expand Up @@ -210,7 +209,7 @@ func (dr *delRange) doTask(ctx sessionctx.Context, r util.DelRangeTask) error {
// and inserts a new record into gc_delete_range table. The primary key is
// job ID, so we ignore key conflict error.
func insertJobIntoDeleteRangeTable(ctx sessionctx.Context, job *model.Job) error {
now, err := getNowTS(ctx)
now, err := getNowTSO(ctx)
if err != nil {
return errors.Trace(err)
}
Expand Down Expand Up @@ -258,7 +257,7 @@ func insertJobIntoDeleteRangeTable(ctx sessionctx.Context, job *model.Job) error
return nil
}

func doInsert(s sqlexec.SQLExecutor, jobID int64, elementID int64, startKey, endKey kv.Key, ts int64) error {
func doInsert(s sqlexec.SQLExecutor, jobID int64, elementID int64, startKey, endKey kv.Key, ts uint64) error {
log.Infof("[ddl] insert into delete-range table with key: (%d,%d)", jobID, elementID)
startKeyEncoded := hex.EncodeToString(startKey)
endKeyEncoded := hex.EncodeToString(endKey)
Expand All @@ -267,12 +266,11 @@ func doInsert(s sqlexec.SQLExecutor, jobID int64, elementID int64, startKey, end
return errors.Trace(err)
}

// getNowTS gets the current timestamp, in second.
func getNowTS(ctx sessionctx.Context) (int64, error) {
// getNowTS gets the current timestamp, in TSO.
func getNowTSO(ctx sessionctx.Context) (uint64, error) {
currVer, err := ctx.GetStore().CurrentVersion()
if err != nil {
return 0, errors.Trace(err)
}
physical := oracle.ExtractPhysical(currVer.Ver)
return physical / 1e3, nil
return currVer.Ver, nil
}
4 changes: 2 additions & 2 deletions session/bootstrap.go
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ const (
element_id BIGINT NOT NULL COMMENT "the schema element ID",
start_key VARCHAR(255) NOT NULL COMMENT "encoded in hex",
end_key VARCHAR(255) NOT NULL COMMENT "encoded in hex",
ts BIGINT NOT NULL COMMENT "timestamp in int64",
ts BIGINT NOT NULL COMMENT "timestamp in uint64",
UNIQUE KEY delete_range_index (job_id, element_id)
);`

Expand All @@ -194,7 +194,7 @@ const (
element_id BIGINT NOT NULL COMMENT "the schema element ID",
start_key VARCHAR(255) NOT NULL COMMENT "encoded in hex",
end_key VARCHAR(255) NOT NULL COMMENT "encoded in hex",
ts BIGINT NOT NULL COMMENT "timestamp in int64",
ts BIGINT NOT NULL COMMENT "timestamp in uint64",
UNIQUE KEY delete_range_done_index (job_id, element_id)
);`

Expand Down

0 comments on commit 389131a

Please sign in to comment.