Commit 66412ba2 authored by 张振华's avatar 张振华 Committed by vipwzw

fix lint warning

parent 105459cd
......@@ -7,5 +7,6 @@ package kvmvccdb
import "errors"
var (
//Err for StateHash lost
ErrStateHashLost = errors.New("ErrStateHashLost")
)
......@@ -18,10 +18,12 @@ import (
var klog = log.New("module", "kvmvccdb")
var maxRollbackNum = 200
// Set log level
func SetLogLevel(level string) {
clog.SetLogLevel(level)
}
// disable log output
func DisableLog() {
klog.SetHandler(log.DiscardHandler())
}
......@@ -30,6 +32,7 @@ func init() {
drivers.Reg("kvmvcc", New)
}
// KV MVCC Store
type KVMVCCStore struct {
*drivers.BaseStore
mvcc dbm.MVCC
......@@ -41,6 +44,7 @@ type subConfig struct {
EnableMVCCIter bool `json:"enableMVCCIter"`
}
// new KVMVCCStore module
func New(cfg *types.Store, sub []byte) queue.Module {
bs := drivers.NewBaseStore(cfg)
var kvs *KVMVCCStore
......@@ -59,11 +63,13 @@ func New(cfg *types.Store, sub []byte) queue.Module {
return kvs
}
// Close the KVMVCCStore module
func (mvccs *KVMVCCStore) Close() {
mvccs.BaseStore.Close()
klog.Info("store kvdb closed")
}
// set kvs with statehash to KVMVCCStore
func (mvccs *KVMVCCStore) Set(datas *types.StoreSet, sync bool) ([]byte, error) {
hash := calcHash(datas)
kvlist, err := mvccs.mvcc.AddMVCC(datas.KV, hash, datas.StateHash, datas.Height)
......@@ -74,6 +80,7 @@ func (mvccs *KVMVCCStore) Set(datas *types.StoreSet, sync bool) ([]byte, error)
return hash, nil
}
// Get kvs with statehash from KVMVCCStore
func (mvccs *KVMVCCStore) Get(datas *types.StoreGet) [][]byte {
values := make([][]byte, len(datas.Keys))
version, err := mvccs.mvcc.GetVersion(datas.StateHash)
......@@ -92,6 +99,7 @@ func (mvccs *KVMVCCStore) Get(datas *types.StoreGet) [][]byte {
return values
}
// Set kvs to the mem of KVMVCCStore module and return the StateHash
func (mvccs *KVMVCCStore) MemSet(datas *types.StoreSet, sync bool) ([]byte, error) {
kvset, err := mvccs.checkVersion(datas.Height)
if err != nil {
......@@ -110,6 +118,7 @@ func (mvccs *KVMVCCStore) MemSet(datas *types.StoreSet, sync bool) ([]byte, erro
return hash, nil
}
// Commit kvs in the mem of KVMVCCStore module to state db and return the StateHash
func (mvccs *KVMVCCStore) Commit(req *types.ReqHash) ([]byte, error) {
_, ok := mvccs.kvsetmap[string(req.Hash)]
if !ok {
......@@ -122,6 +131,7 @@ func (mvccs *KVMVCCStore) Commit(req *types.ReqHash) ([]byte, error) {
return req.Hash, nil
}
// Rollback kvs in the mem of KVMVCCStore module and return the StateHash
func (mvccs *KVMVCCStore) Rollback(req *types.ReqHash) ([]byte, error) {
_, ok := mvccs.kvsetmap[string(req.Hash)]
if !ok {
......@@ -135,6 +145,7 @@ func (mvccs *KVMVCCStore) Rollback(req *types.ReqHash) ([]byte, error) {
return req.Hash, nil
}
// Iterate range with Prefix by StateHash to get the latest version kvs.
func (mvccs *KVMVCCStore) IterateRangeByStateHash(statehash []byte, start []byte, end []byte, ascending bool, fn func(key, value []byte) bool) {
if !mvccs.enableMVCCIter {
panic("call IterateRangeByStateHash when disable mvcc iter")
......@@ -162,10 +173,12 @@ func (mvccs *KVMVCCStore) IterateRangeByStateHash(statehash []byte, start []byte
listhelper.IteratorCallback(start, end, 0, 1, fn)
}
// Proc supported events
func (mvccs *KVMVCCStore) ProcEvent(msg queue.Message) {
msg.ReplyErr("KVStore", types.ErrActionNotSupport)
}
// Set kvs to nil with StateHash
func (mvccs *KVMVCCStore) Del(req *types.StoreDel) ([]byte, error) {
kvset, err := mvccs.mvcc.DelMVCC(req.StateHash, req.Height, true)
if err != nil {
......
......@@ -35,8 +35,8 @@ func TestKvmvccdbNewClose(t *testing.T) {
assert.Nil(t, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(t, store)
store.Close()
......@@ -47,8 +47,8 @@ func TestKvmvccdbSetGet(t *testing.T) {
assert.Nil(t, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(t, store)
keys0 := [][]byte{[]byte("mk1"), []byte("mk2")}
......@@ -93,8 +93,8 @@ func TestKvmvccdbMemSet(t *testing.T) {
assert.Nil(t, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(t, store)
var kv []*types.KeyValue
......@@ -131,8 +131,8 @@ func TestKvmvccdbRollback(t *testing.T) {
assert.Nil(t, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(t, store)
var kv []*types.KeyValue
......@@ -164,8 +164,8 @@ func TestKvmvccdbRollbackBatch(t *testing.T) {
assert.Nil(t, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(t, store)
var kv []*types.KeyValue
......@@ -261,7 +261,7 @@ func TestIterateRangeByStateHash(t *testing.T) {
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
store_cfg, sub := newStoreCfgIter(dir)
store := New(store_cfg, sub).(*KVMVCCStore)
store := New(storeCfg, sub).(*KVMVCCStore)
assert.NotNil(t, store)
execaddr := "0111vcBNSEA7fZhAdLJphDwQRQJa111"
......@@ -406,8 +406,8 @@ func BenchmarkGet(b *testing.B) {
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(b, store)
var kv []*types.KeyValue
......@@ -450,8 +450,8 @@ func BenchmarkStoreGetKvs4N(b *testing.B) {
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(b, store)
var kv []*types.KeyValue
......@@ -495,8 +495,8 @@ func BenchmarkStoreGetKvsForNN(b *testing.B) {
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(b, store)
var kv []*types.KeyValue
......@@ -555,8 +555,8 @@ func BenchmarkStoreGetKvsFor10000(b *testing.B) {
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(b, store)
var kv []*types.KeyValue
......@@ -620,8 +620,8 @@ func BenchmarkGetIter(b *testing.B) {
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
store_cfg, sub := newStoreCfgIter(dir)
store := New(store_cfg, sub).(*KVMVCCStore)
storeCfg, sub := newStoreCfgIter(dir)
store := New(storeCfg, sub).(*KVMVCCStore)
assert.NotNil(b, store)
var kv []*types.KeyValue
......@@ -663,8 +663,8 @@ func BenchmarkSet(b *testing.B) {
assert.Nil(b, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(b, store)
b.Log(dir)
......@@ -700,8 +700,8 @@ func BenchmarkStoreSet(b *testing.B) {
assert.Nil(b, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(b, store)
var kv []*types.KeyValue
......@@ -735,8 +735,8 @@ func BenchmarkSetIter(b *testing.B) {
assert.Nil(b, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
store_cfg, sub := newStoreCfgIter(dir)
store := New(store_cfg, sub).(*KVMVCCStore)
storeCfg, sub := newStoreCfgIter(dir)
store := New(storeCfg, sub).(*KVMVCCStore)
assert.NotNil(b, store)
b.Log(dir)
......@@ -784,8 +784,8 @@ func BenchmarkMemSet(b *testing.B) {
assert.Nil(b, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(b, store)
var kv []*types.KeyValue
......@@ -818,8 +818,8 @@ func BenchmarkStoreMemSet(b *testing.B) {
assert.Nil(b, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(b, store)
var kv []*types.KeyValue
......@@ -856,8 +856,8 @@ func BenchmarkCommit(b *testing.B) {
assert.Nil(b, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(b, store)
var kv []*types.KeyValue
......@@ -897,8 +897,8 @@ func BenchmarkStoreCommit(b *testing.B) {
assert.Nil(b, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var store_cfg = newStoreCfg(dir)
store := New(store_cfg, nil).(*KVMVCCStore)
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(b, store)
var kv []*types.KeyValue
......@@ -941,8 +941,8 @@ func BenchmarkIterMemSet(b *testing.B) {
assert.Nil(b, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
store_cfg, sub := newStoreCfgIter(dir)
store := New(store_cfg, sub).(*KVMVCCStore)
storeCfg, sub := newStoreCfgIter(dir)
store := New(storeCfg, sub).(*KVMVCCStore)
assert.NotNil(b, store)
var kv []*types.KeyValue
......@@ -974,8 +974,8 @@ func BenchmarkIterCommit(b *testing.B) {
assert.Nil(b, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
store_cfg, sub := newStoreCfgIter(dir)
store := New(store_cfg, sub).(*KVMVCCStore)
storeCfg, sub := newStoreCfgIter(dir)
store := New(storeCfg, sub).(*KVMVCCStore)
assert.NotNil(b, store)
var kv []*types.KeyValue
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment