Browse Source

stroage: adopt KV interface

Xiang Li 10 years ago
parent
commit
69d02410cf
2 changed files with 6 additions and 6 deletions
  1. 5 5
      storage/kv.go
  2. 1 1
      storage/kvstore.go

+ 5 - 5
storage/kv.go

@@ -24,11 +24,11 @@ type KV interface {
 
 	// TnxBegin begins a tnx. Only Tnx prefixed operation can be executed, others will be blocked
 	// until tnx ends. Only one on-going tnx is allowed.
-	TnxBegin()
+	TnxBegin() int64
 	// TnxEnd ends the on-going tnx.
 	// TODO: generate and verify tnx id for safty.
-	TnxEnd()
-	TnxRange(key, end []byte, limit, rangeIndex int64) (kvs []storagepb.KeyValue, index int64)
-	TnxPut(key, value []byte) (index int64)
-	TnxDeleteRange(key, end []byte) (n, index int64)
+	TnxEnd(tnxID int64) error
+	TnxRange(tnxID int64, key, end []byte, limit, rangeIndex int64) (kvs []storagepb.KeyValue, index int64, err error)
+	TnxPut(tnxID int64, key, value []byte) (index int64, err error)
+	TnxDeleteRange(tnxID int64, key, end []byte) (n, index int64, err error)
 }

+ 1 - 1
storage/kvstore.go

@@ -34,7 +34,7 @@ type store struct {
 	tnxID int64      // tracks the current tnxID to verify tnx operations
 }
 
-func newStore(path string) *store {
+func newStore(path string) KV {
 	s := &store{
 		b:            backend.New(path, batchInterval, batchLimit),
 		kvindex:      newTreeIndex(),