*: address review comments

This commit is contained in:
disksing
2015-11-09 12:01:47 +08:00
parent 13bf573ecb
commit df7b658ebc
8 changed files with 38 additions and 42 deletions

View File

@ -74,9 +74,9 @@ func (c *cacheSnapshot) BatchGet(keys []Key) (map[string][]byte, error) {
return m, nil
}
// Scan scans values from snapshot and saves them in cache.
func (c *cacheSnapshot) Scan(start, end Key, limit int) (map[string][]byte, error) {
values, err := c.snapshot.Scan(start, end, limit)
// RangeGet gets values from snapshot and saves them in cache.
func (c *cacheSnapshot) RangeGet(start, end Key, limit int) (map[string][]byte, error) {
values, err := c.snapshot.RangeGet(start, end, limit)
if err != nil {
return nil, errors.Trace(err)
}

View File

@ -14,8 +14,6 @@
package kv
import (
"bytes"
"github.com/juju/errors"
. "github.com/pingcap/check"
)
@ -53,17 +51,17 @@ func (s *testCacheSnapshotSuite) TestGet(c *C) {
v, err := s.cache.Get(s.k1)
c.Assert(err, IsNil)
c.Assert(bytes.Compare(v, s.v1), Equals, 0)
c.Assert(v, BytesEquals, s.v1)
s.store.Set(s.k1, s.v3)
v, err = s.cache.Get(s.k1)
c.Assert(err, IsNil)
c.Assert(bytes.Compare(v, s.v1), Equals, 0)
c.Assert(v, BytesEquals, s.v1)
s.store.Set(s.k2, s.v4)
v, err = s.cache.Get(s.k2)
c.Assert(err, IsNil)
c.Assert(bytes.Compare(v, s.v4), Equals, 0)
c.Assert(v, BytesEquals, s.v4)
}
func (s *testCacheSnapshotSuite) TestBatchGet(c *C) {
@ -72,8 +70,8 @@ func (s *testCacheSnapshotSuite) TestBatchGet(c *C) {
m, err := s.cache.BatchGet([]Key{s.k1, s.k2, s.k3})
c.Assert(err, IsNil)
c.Assert(bytes.Compare(m[string(s.k1)], s.v1), Equals, 0)
c.Assert(bytes.Compare(m[string(s.k2)], s.v2), Equals, 0)
c.Assert(m[string(s.k1)], BytesEquals, s.v1)
c.Assert(m[string(s.k2)], BytesEquals, s.v2)
_, exist := m[string(s.k3)]
c.Assert(exist, IsFalse)
@ -81,25 +79,25 @@ func (s *testCacheSnapshotSuite) TestBatchGet(c *C) {
s.store.Set(s.k1, s.v4)
v, err := s.cache.Get(s.k1)
c.Assert(err, IsNil)
c.Assert(bytes.Compare(v, s.v1), Equals, 0)
c.Assert(v, BytesEquals, s.v1)
}
func (s *testCacheSnapshotSuite) TestScan(c *C) {
func (s *testCacheSnapshotSuite) TestRangeGet(c *C) {
s.store.Set(s.k1, s.v1)
s.store.Set(s.k2, s.v2)
s.store.Set(s.k3, s.v3)
m, err := s.cache.Scan(s.k1, s.k2, 100)
m, err := s.cache.RangeGet(s.k1, s.k2, 100)
c.Assert(err, IsNil)
c.Assert(len(m), Equals, 2)
c.Assert(bytes.Compare(m[string(s.k1)], s.v1), Equals, 0)
c.Assert(bytes.Compare(m[string(s.k2)], s.v2), Equals, 0)
c.Assert(m[string(s.k1)], BytesEquals, s.v1)
c.Assert(m[string(s.k2)], BytesEquals, s.v2)
// result should be saved in cache
s.store.Set(s.k1, s.v4)
v, err := s.cache.Get(s.k1)
c.Assert(err, IsNil)
c.Assert(bytes.Compare(v, s.v1), Equals, 0)
c.Assert(v, BytesEquals, s.v1)
}
type mockSnapshot struct {
@ -125,7 +123,7 @@ func (s *mockSnapshot) BatchGet(keys []Key) (map[string][]byte, error) {
return m, nil
}
func (s *mockSnapshot) Scan(start, end Key, limit int) (map[string][]byte, error) {
func (s *mockSnapshot) RangeGet(start, end Key, limit int) (map[string][]byte, error) {
m := make(map[string][]byte)
it := s.NewIterator([]byte(start))
defer it.Close()

View File

@ -103,8 +103,9 @@ type Transaction interface {
Get(k Key) ([]byte, error)
// BatchGet gets a batch of values from KV store.
BatchGet(keys []Key) (map[string][]byte, error)
// Scan gets values in specific range from KV store.
Scan(start, end Key, limit int) (map[string][]byte, error)
// RangeGet gets values in the range [start, end] from KV store. Maximum
// number of values is up to limit.
RangeGet(start, end Key, limit int) (map[string][]byte, error)
// Set sets the value for key k as v into KV store.
Set(k Key, v []byte) error
// Seek searches for the entry with key k in KV store.
@ -146,8 +147,9 @@ type Snapshot interface {
Get(k Key) ([]byte, error)
// BatchGet gets a batch of values from snapshot.
BatchGet(keys []Key) (map[string][]byte, error)
// Scan gets values in specific range from snapshot.
Scan(start, end Key, limit int) (map[string][]byte, error)
// RangeGet gets values in the range [start, end] from snapshot. Maximum
// number of values is up to limit.
RangeGet(start, end Key, limit int) (map[string][]byte, error)
// NewIterator gets a new iterator on the snapshot.
NewIterator(param interface{}) Iterator
// Release releases the snapshot to store.
@ -185,7 +187,6 @@ type Storage interface {
Close() error
// Storage's unique ID
UUID() string
// CurrentVersion returns current max committed version.
CurrentVersion() (Version, error)
}

View File

@ -13,11 +13,7 @@
package kv
import (
"bytes"
. "github.com/pingcap/check"
)
import . "github.com/pingcap/check"
var _ = Suite(&testUnionStoreSuite{})
@ -51,11 +47,11 @@ func (s *testUnionStoreSuite) TestGetSet(c *C) {
s.store.Set(s.k1, s.v1)
v, err := s.us.Get(s.k1)
c.Assert(err, IsNil)
c.Assert(bytes.Compare(v, s.v1), Equals, 0)
c.Assert(v, BytesEquals, s.v1)
s.us.Set(s.k1, s.v2)
v, err = s.us.Get(s.k1)
c.Assert(err, IsNil)
c.Assert(bytes.Compare(v, s.v2), Equals, 0)
c.Assert(v, BytesEquals, s.v2)
}
func (s *testUnionStoreSuite) TestDelete(c *C) {
@ -68,7 +64,7 @@ func (s *testUnionStoreSuite) TestDelete(c *C) {
s.us.Set(s.k1, s.v2)
v, err := s.us.Get(s.k1)
c.Assert(err, IsNil)
c.Assert(bytes.Compare(v, s.v2), Equals, 0)
c.Assert(v, BytesEquals, s.v2)
}
func (s *testUnionStoreSuite) TestSeek(c *C) {
@ -102,7 +98,7 @@ func checkIterator(c *C, iter Iterator, keys [][]byte, values [][]byte) {
v := values[i]
c.Assert(iter.Valid(), IsTrue)
c.Assert(iter.Key(), Equals, string(k))
c.Assert(bytes.Compare(iter.Value(), v), Equals, 0)
c.Assert(iter.Value(), BytesEquals, v)
c.Assert(iter.Next(), IsNil)
}
c.Assert(iter.Valid(), IsFalse)

View File

@ -75,9 +75,10 @@ func (s *hbaseSnapshot) Get(k kv.Key) ([]byte, error) {
// BatchGet implements kv.Snapshot.BatchGet().
func (s *hbaseSnapshot) BatchGet(keys []kv.Key) (map[string][]byte, error) {
gets := make([]*hbase.Get, len(keys))
bColFamily, bQualifier := []byte(ColFamily), []byte(Qualifier)
for i, key := range keys {
g := hbase.NewGet(key)
g.AddColumn([]byte(ColFamily), []byte(Qualifier))
g.AddColumn(bColFamily, bQualifier)
gets[i] = g
}
rows, err := s.txn.BatchGet(s.storeName, gets)
@ -87,16 +88,16 @@ func (s *hbaseSnapshot) BatchGet(keys []kv.Key) (map[string][]byte, error) {
m := make(map[string][]byte)
for _, r := range rows {
k := r.Row
k := string(r.Row)
v := r.Columns[FmlAndQual].Value
m[string(k)] = v
s.cache[string(k)] = v
m[k] = v
s.cache[k] = v
}
return m, nil
}
// Scan implements kv.Snapshot.Scan().
func (s *hbaseSnapshot) Scan(start, end kv.Key, limit int) (map[string][]byte, error) {
// RangeGet implements kv.Snapshot.RangeGet().
func (s *hbaseSnapshot) RangeGet(start, end kv.Key, limit int) (map[string][]byte, error) {
scanner := s.txn.GetScanner([]byte(s.storeName), start, end, limit)
defer scanner.Close()

View File

@ -111,8 +111,8 @@ func (txn *hbaseTxn) BatchGet(keys []kv.Key) (map[string][]byte, error) {
return txn.UnionStore.Snapshot.BatchGet(encodedKeys)
}
func (txn *hbaseTxn) Scan(start, end kv.Key, limit int) (map[string][]byte, error) {
return txn.UnionStore.Snapshot.Scan(kv.EncodeKey(start), kv.EncodeKey(end), limit)
func (txn *hbaseTxn) RangeGet(start, end kv.Key, limit int) (map[string][]byte, error) {
return txn.UnionStore.Snapshot.RangeGet(kv.EncodeKey(start), kv.EncodeKey(end), limit)
}
// GetInt64 get int64 which created by Inc method.

View File

@ -120,7 +120,7 @@ func (s *dbSnapshot) BatchGet(keys []kv.Key) (map[string][]byte, error) {
return m, nil
}
func (s *dbSnapshot) Scan(start, end kv.Key, limit int) (map[string][]byte, error) {
func (s *dbSnapshot) RangeGet(start, end kv.Key, limit int) (map[string][]byte, error) {
m := make(map[string][]byte)
it := s.NewIterator(start)
defer it.Close()

View File

@ -129,8 +129,8 @@ func (txn *dbTxn) BatchGet(keys []kv.Key) (map[string][]byte, error) {
return txn.UnionStore.Snapshot.BatchGet(encodedKeys)
}
func (txn *dbTxn) Scan(start, end kv.Key, limit int) (map[string][]byte, error) {
return txn.UnionStore.Snapshot.Scan(kv.EncodeKey(start), kv.EncodeKey(end), limit)
func (txn *dbTxn) RangeGet(start, end kv.Key, limit int) (map[string][]byte, error) {
return txn.UnionStore.Snapshot.RangeGet(kv.EncodeKey(start), kv.EncodeKey(end), limit)
}
func (txn *dbTxn) Set(k kv.Key, data []byte) error {