Skip to content

Commit

Permalink
Merge pull request pingcap#652 from pingcap/siddontang/cleanup-prefix
Browse files Browse the repository at this point in the history
cleanup prefix 'z'
  • Loading branch information
siddontang committed Nov 28, 2015
2 parents dcb5b50 + 582354f commit 7f75a57
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 104 deletions.
6 changes: 3 additions & 3 deletions ddl/index.go
Original file line number Diff line number Diff line change
Expand Up @@ -373,13 +373,13 @@ func (d *ddl) getSnapshotRows(t table.Table, version uint64, seekHandle int64) (
firstKey := t.RecordKey(seekHandle, nil)
prefix := []byte(t.KeyPrefix())

it := snap.NewMvccIterator(kv.EncodeKey([]byte(firstKey)), ver)
it := snap.NewMvccIterator([]byte(firstKey), ver)
defer it.Close()

handles := make([]int64, 0, maxBatchSize)

for it.Valid() {
key := kv.DecodeKey([]byte(it.Key()))
key := []byte(it.Key())
if !bytes.HasPrefix(key, prefix) {
break
}
Expand All @@ -390,7 +390,7 @@ func (d *ddl) getSnapshotRows(t table.Table, version uint64, seekHandle int64) (
return nil, errors.Trace(err)
}

rk := kv.EncodeKey(t.RecordKey(handle, nil))
rk := t.RecordKey(handle, nil)

handles = append(handles, handle)
if len(handles) == maxBatchSize {
Expand Down
43 changes: 0 additions & 43 deletions kv/iter.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@ var (
)

var (
// keyPrefix is used to avoid key conflict with some database metadata keys.
keyPrefix = []byte("z")
codecEncoder = &encoder{
codec.EncodeKey,
codec.DecodeKey,
Expand All @@ -52,16 +50,6 @@ type encoder struct {
dec func([]byte) ([]interface{}, error)
}

// EncodeKey appends the k behind keyPrefix.
func EncodeKey(k []byte) []byte {
return append(keyPrefix, k...)
}

// DecodeKey removes the prefixed keyPrefix.
func DecodeKey(k []byte) []byte {
return k[len(keyPrefix):]
}

// EncodeValue encodes values before it is stored to the KV store.
func EncodeValue(values ...interface{}) ([]byte, error) {
return defaultEncoder.enc(values...)
Expand All @@ -84,34 +72,3 @@ func NextUntil(it Iterator, fn FnKeyCmp) error {
}
return nil
}

type decodeKeyIter struct {
iter Iterator
}

// NewDecodeKeyIter returns an iterator with Key() auto decoded.
func NewDecodeKeyIter(iter Iterator) Iterator {
return &decodeKeyIter{
iter: iter,
}
}

func (iter *decodeKeyIter) Next() error {
return iter.iter.Next()
}

func (iter *decodeKeyIter) Value() []byte {
return iter.iter.Value()
}

func (iter *decodeKeyIter) Key() string {
return string(DecodeKey([]byte(iter.iter.Key())))
}

func (iter *decodeKeyIter) Valid() bool {
return iter.iter.Valid()
}

func (iter *decodeKeyIter) Close() {
iter.iter.Close()
}
52 changes: 26 additions & 26 deletions meta/meta.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,28 +33,28 @@ var (
)

// Meta structure:
// mNextGlobalID -> int64
// mSchemaVersion -> int64
// mDBs -> {
// mDB:1 -> db meta data []byte
// mDB:2 -> db meta data []byte
// NextGlobalID -> int64
// SchemaVersion -> int64
// DBs -> {
// DB:1 -> db meta data []byte
// DB:2 -> db meta data []byte
// }
// mDB:1 -> {
// mTable:1 -> table meta data []byte
// mTable:2 -> table meta data []byte
// mTID:1 -> int64
// mTID:2 -> int64
// DB:1 -> {
// Table:1 -> table meta data []byte
// Table:2 -> table meta data []byte
// TID:1 -> int64
// TID:2 -> int64
// }
//

var (
mNextGlobalIDKey = []byte("mNextGlobalID")
mSchemaVersionKey = []byte("mSchemaVersionKey")
mDBs = []byte("mDBs")
mDBPrefix = "mDB"
mTablePrefix = "mTable"
mTableIDPrefix = "mTID"
mBootstrapKey = []byte("mBootstrapKey")
mNextGlobalIDKey = []byte("NextGlobalID")
mSchemaVersionKey = []byte("SchemaVersionKey")
mDBs = []byte("DBs")
mDBPrefix = "DB"
mTablePrefix = "Table"
mTableIDPrefix = "TID"
mBootstrapKey = []byte("BootstrapKey")
)

var (
Expand All @@ -75,7 +75,7 @@ type Meta struct {

// NewMeta creates a Meta in transaction txn.
func NewMeta(txn kv.Transaction) *Meta {
t := structure.NewStructure(txn, []byte{0x00})
t := structure.NewStructure(txn, []byte{'m'})
return &Meta{txn: t}
}

Expand Down Expand Up @@ -407,19 +407,19 @@ func (m *Meta) GetTable(dbID int64, tableID int64) (*model.TableInfo, error) {
}

// DDL structure
// mDDLOnwer: []byte
// mDDLJobList: list jobs
// mDDLJobHistory: hash
// mDDLJobReorg: hash
// DDLOnwer: []byte
// DDLJobList: list jobs
// DDLJobHistory: hash
// DDLJobReorg: hash
//
// for multi DDL workers, only one can become the owner
// to operate DDL jobs, and dispatch them to MR Jobs.

var (
mDDLOwnerKey = []byte("mDDLOwner")
mDDLJobListKey = []byte("mDDLJobList")
mDDLJobHistoryKey = []byte("mDDLJobHistory")
mDDLJobReorgKey = []byte("mDDLJobReorg")
mDDLOwnerKey = []byte("DDLOwner")
mDDLJobListKey = []byte("DDLJobList")
mDDLJobHistoryKey = []byte("DDLJobHistory")
mDDLJobReorgKey = []byte("DDLJobReorg")
)

// GetDDLOwner gets the current owner for DDL.
Expand Down
17 changes: 3 additions & 14 deletions store/hbase/txn.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ func newHbaseTxn(t themis.Txn, storeName string) *hbaseTxn {

func (txn *hbaseTxn) Inc(k kv.Key, step int64) (int64, error) {
log.Debugf("Inc %q, step %d txn:%d", k, step, txn.tid)
k = kv.EncodeKey(k)
val, err := txn.UnionStore.Get(k)
if kv.IsErrNotFound(err) {
err = txn.UnionStore.Set(k, []byte(strconv.FormatInt(step, 10)))
Expand Down Expand Up @@ -110,7 +109,6 @@ func (txn *hbaseTxn) String() string {

func (txn *hbaseTxn) Get(k kv.Key) ([]byte, error) {
log.Debugf("get key:%q, txn:%d", k, txn.tid)
k = kv.EncodeKey(k)
val, err := txn.UnionStore.Get(k)
if kv.IsErrNotFound(err) || len(val) == 0 {
return nil, errors.Trace(kv.ErrNotExist)
Expand All @@ -122,22 +120,17 @@ func (txn *hbaseTxn) Get(k kv.Key) ([]byte, error) {
}

func (txn *hbaseTxn) BatchPrefetch(keys []kv.Key) error {
encodedKeys := make([]kv.Key, len(keys))
for i, k := range keys {
encodedKeys[i] = kv.EncodeKey(k)
}
_, err := txn.UnionStore.Snapshot.BatchGet(encodedKeys)
_, err := txn.UnionStore.Snapshot.BatchGet(keys)
return err
}

func (txn *hbaseTxn) RangePrefetch(start, end kv.Key, limit int) error {
_, err := txn.UnionStore.Snapshot.RangeGet(kv.EncodeKey(start), kv.EncodeKey(end), limit)
_, err := txn.UnionStore.Snapshot.RangeGet(start, end, limit)
return err
}

// GetInt64 get int64 which created by Inc method.
func (txn *hbaseTxn) GetInt64(k kv.Key) (int64, error) {
k = kv.EncodeKey(k)
val, err := txn.UnionStore.Get(k)
if kv.IsErrNotFound(err) {
return 0, nil
Expand All @@ -159,23 +152,20 @@ func (txn *hbaseTxn) Set(k kv.Key, data []byte) error {
}

log.Debugf("set key:%q, txn:%d", k, txn.tid)
k = kv.EncodeKey(k)
return txn.UnionStore.Set(k, data)
}

func (txn *hbaseTxn) Seek(k kv.Key) (kv.Iterator, error) {
log.Debugf("seek %q txn:%d", k, txn.tid)
k = kv.EncodeKey(k)
iter, err := txn.UnionStore.Seek(k, txn)
if err != nil {
return nil, errors.Trace(err)
}
return kv.NewDecodeKeyIter(iter), nil
return iter, nil
}

func (txn *hbaseTxn) Delete(k kv.Key) error {
log.Debugf("delete %q txn:%d", k, txn.tid)
k = kv.EncodeKey(k)
err := txn.UnionStore.Delete(k)
if err != nil {
return errors.Trace(err)
Expand Down Expand Up @@ -272,7 +262,6 @@ func (txn *hbaseTxn) Rollback() error {

func (txn *hbaseTxn) LockKeys(keys ...kv.Key) error {
for _, key := range keys {
key = kv.EncodeKey(key)
if err := txn.txn.LockRow(txn.storeName, key); err != nil {
return errors.Trace(err)
}
Expand Down
2 changes: 1 addition & 1 deletion store/localstore/mvcc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ func (t *testMvccSuite) TestMvccNext(c *C) {
}

func encodeTestDataKey(i int) []byte {
return kv.EncodeKey(encodeInt(i))
return encodeInt(i)
}

func (t *testMvccSuite) TestSnapshotGet(c *C) {
Expand Down
17 changes: 3 additions & 14 deletions store/localstore/txn.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ func (txn *dbTxn) markOrigin(k []byte) {

func (txn *dbTxn) Inc(k kv.Key, step int64) (int64, error) {
log.Debugf("Inc %q, step %d txn:%d", k, step, txn.tid)
k = kv.EncodeKey(k)

txn.markOrigin(k)
val, err := txn.UnionStore.Get(k)
Expand Down Expand Up @@ -89,7 +88,6 @@ func (txn *dbTxn) Inc(k kv.Key, step int64) (int64, error) {
}

func (txn *dbTxn) GetInt64(k kv.Key) (int64, error) {
k = kv.EncodeKey(k)
val, err := txn.UnionStore.Get(k)
if kv.IsErrNotFound(err) {
return 0, nil
Expand All @@ -107,7 +105,6 @@ func (txn *dbTxn) String() string {

func (txn *dbTxn) Get(k kv.Key) ([]byte, error) {
log.Debugf("get key:%q, txn:%d", k, txn.tid)
k = kv.EncodeKey(k)
val, err := txn.UnionStore.Get(k)
if kv.IsErrNotFound(err) {
return nil, errors.Trace(kv.ErrNotExist)
Expand All @@ -123,16 +120,12 @@ func (txn *dbTxn) Get(k kv.Key) ([]byte, error) {
}

func (txn *dbTxn) BatchPrefetch(keys []kv.Key) error {
encodedKeys := make([]kv.Key, len(keys))
for i, k := range keys {
encodedKeys[i] = kv.EncodeKey(k)
}
_, err := txn.UnionStore.Snapshot.BatchGet(encodedKeys)
_, err := txn.UnionStore.Snapshot.BatchGet(keys)
return err
}

func (txn *dbTxn) RangePrefetch(start, end kv.Key, limit int) error {
_, err := txn.UnionStore.Snapshot.RangeGet(kv.EncodeKey(start), kv.EncodeKey(end), limit)
_, err := txn.UnionStore.Snapshot.RangeGet(start, end, limit)
return err
}

Expand All @@ -144,7 +137,6 @@ func (txn *dbTxn) Set(k kv.Key, data []byte) error {
}

log.Debugf("set key:%q, txn:%d", k, txn.tid)
k = kv.EncodeKey(k)
err := txn.UnionStore.Set(k, data)
if err != nil {
return errors.Trace(err)
Expand All @@ -156,7 +148,6 @@ func (txn *dbTxn) Set(k kv.Key, data []byte) error {

func (txn *dbTxn) Seek(k kv.Key) (kv.Iterator, error) {
log.Debugf("seek key:%q, txn:%d", k, txn.tid)
k = kv.EncodeKey(k)

iter, err := txn.UnionStore.Seek(k, txn)
if err != nil {
Expand All @@ -166,12 +157,11 @@ func (txn *dbTxn) Seek(k kv.Key) (kv.Iterator, error) {
return &kv.UnionIter{}, nil
}

return kv.NewDecodeKeyIter(iter), nil
return iter, nil
}

func (txn *dbTxn) Delete(k kv.Key) error {
log.Debugf("delete key:%q, txn:%d", k, txn.tid)
k = kv.EncodeKey(k)
err := txn.UnionStore.Delete(k)
if err != nil {
return errors.Trace(err)
Expand Down Expand Up @@ -282,7 +272,6 @@ func (txn *dbTxn) Rollback() error {

func (txn *dbTxn) LockKeys(keys ...kv.Key) error {
for _, key := range keys {
key = kv.EncodeKey(key)
txn.markOrigin(key)
}
return nil
Expand Down
2 changes: 1 addition & 1 deletion store/store_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -538,7 +538,7 @@ func (s *testKVSuite) TestDBClose(c *C) {
snap, err := store.GetSnapshot(kv.MaxVersion)
c.Assert(err, IsNil)

_, err = snap.MvccGet(kv.EncodeKey([]byte("a")), kv.MaxVersion)
_, err = snap.MvccGet([]byte("a"), kv.MaxVersion)
c.Assert(err, IsNil)

txn, err = store.Begin()
Expand Down
4 changes: 2 additions & 2 deletions table/tables/tables.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,8 @@ func NewTable(tableID int64, tableName string, cols []*column.Col, alloc autoid.
t := &Table{
ID: tableID,
Name: name,
recordPrefix: fmt.Sprintf("%d_r", tableID),
indexPrefix: fmt.Sprintf("%d_i", tableID),
recordPrefix: fmt.Sprintf("t%d_r", tableID),
indexPrefix: fmt.Sprintf("t%d_i", tableID),
alloc: alloc,
Columns: cols,
state: model.StatePublic,
Expand Down

0 comments on commit 7f75a57

Please sign in to comment.