Merge pull request #489 from pingcap/goroutine/clean-up-ddl

ddl: Tiny clean up
This commit is contained in:
siddontang
2015-10-30 20:48:26 +08:00
5 changed files with 12 additions and 13 deletions

View File

@ -29,7 +29,7 @@ import (
"github.com/pingcap/tidb/util/errors2"
)
func (d *ddl) checkTablePublic(t *meta.Meta, job *model.Job) (*model.TableInfo, error) {
func (d *ddl) getTableInfo(t *meta.Meta, job *model.Job) (*model.TableInfo, error) {
schemaID := job.SchemaID
tableID := job.TableID
tblInfo, err := t.GetTable(schemaID, tableID)
@ -104,8 +104,7 @@ func buildIndexInfo(tblInfo *model.TableInfo, unique bool, indexName model.CIStr
func (d *ddl) onIndexCreate(t *meta.Meta, job *model.Job) error {
schemaID := job.SchemaID
tblInfo, err := d.checkTablePublic(t, job)
tblInfo, err := d.getTableInfo(t, job)
if err != nil {
return errors.Trace(err)
}
@ -214,8 +213,7 @@ func (d *ddl) onIndexCreate(t *meta.Meta, job *model.Job) error {
func (d *ddl) onIndexDrop(t *meta.Meta, job *model.Job) error {
schemaID := job.SchemaID
tblInfo, err := d.checkTablePublic(t, job)
tblInfo, err := d.getTableInfo(t, job)
if err != nil {
return errors.Trace(err)
}
@ -264,8 +262,7 @@ func (d *ddl) onIndexDrop(t *meta.Meta, job *model.Job) error {
return errors.Trace(err)
case model.StateReorgnization:
// reorganization -> absent
var tbl table.Table
tbl, err = d.getTable(t, schemaID, tblInfo)
tbl, err := d.getTable(t, schemaID, tblInfo)
if err != nil {
return errors.Trace(err)
}

View File

@ -97,7 +97,6 @@ const waitReorgTimeout = 10 * time.Second
var errWaitReorgTimeout = errors.New("wait for reorgnization timeout")
func (d *ddl) runReorgJob(f func() error) error {
// wait reorgnization jobs done
// TODO use persistent reorgnization job list.
if d.reOrgDoneCh == nil {
// start a reorgnization job

View File

@ -294,7 +294,9 @@ func (d *ddl) runJob(t *meta.Meta, job *model.Job) error {
case model.ActionDropIndex:
err = d.onIndexDrop(t, job)
case model.ActionAddConstraint:
log.Fatal("Doesn't support change constraint online")
case model.ActionDropConstraint:
log.Fatal("Doesn't support change constraint online")
default:
// invalid job, cancel it.
job.State = model.JobCancelled

View File

@ -20,6 +20,7 @@ import (
"strconv"
"strings"
"sync"
"time"
"github.com/juju/errors"
"github.com/pingcap/tidb/kv"
@ -260,9 +261,8 @@ func (m *Meta) CreateTable(dbID int64, tableInfo *model.TableInfo) error {
// DropDatabase drops whole database.
func (m *Meta) DropDatabase(dbID int64) error {
// first check db exists or not.
// check if db exists.
dbKey := m.dbKey(dbID)
if err := m.txn.HClear(dbKey); err != nil {
return errors.Trace(err)
}
@ -283,7 +283,6 @@ func (m *Meta) DropTable(dbID int64, tableID int64) error {
}
tableKey := m.tableKey(tableID)
// then check table exists or not
if err := m.checkTableExists(dbKey, tableKey); err != nil {
return errors.Trace(err)
@ -398,7 +397,6 @@ func (m *Meta) GetTable(dbID int64, tableID int64) (*model.TableInfo, error) {
}
tableKey := m.tableKey(tableID)
value, err := m.txn.HGet(dbKey, tableKey)
if err != nil || value == nil {
return nil, errors.Trace(err)
@ -479,6 +477,8 @@ func (m *Meta) GetDDLJob(index int64) (*model.Job, error) {
// UpdateDDLJob updates the DDL job with index.
func (m *Meta) UpdateDDLJob(index int64, job *model.Job) error {
// TODO: use timestamp allocated by TSO
job.LastUpdateTS = time.Now().Unix()
b, err := job.Encode()
if err != nil {
return errors.Trace(err)

View File

@ -78,7 +78,8 @@ type Job struct {
RawArgs json.RawMessage `json:"raw_args"`
SchemaState SchemaState `json:"schema_state"`
// snapshot version for this job.
SnapshotVer uint64 `json:"snapshot_ver"`
SnapshotVer uint64 `json:"snapshot_ver"`
LastUpdateTS int64 `json:"last_update_ts"`
}
// Encode encodes job with json format.