forked from mirror/ledisdb
store add compact and string interface
This commit is contained in:
parent
5f404a5240
commit
8284c94453
|
@ -152,6 +152,10 @@ func (db *DB) BatchPut(writes []driver.Write) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *DB) Compact() error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
driver.Register(Store{})
|
driver.Register(Store{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,11 @@ import (
|
||||||
|
|
||||||
type DB struct {
|
type DB struct {
|
||||||
driver.IDB
|
driver.IDB
|
||||||
|
name string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (db *DB) String() string {
|
||||||
|
return db.name
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db *DB) NewIterator() *Iterator {
|
func (db *DB) NewIterator() *Iterator {
|
||||||
|
@ -29,6 +34,10 @@ func (db *DB) NewSnapshot() (*Snapshot, error) {
|
||||||
return s, nil
|
return s, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *DB) Compact() error {
|
||||||
|
return db.IDB.Compact()
|
||||||
|
}
|
||||||
|
|
||||||
func (db *DB) RangeIterator(min []byte, max []byte, rangeType uint8) *RangeLimitIterator {
|
func (db *DB) RangeIterator(min []byte, max []byte, rangeType uint8) *RangeLimitIterator {
|
||||||
return NewRangeLimitIterator(db.NewIterator(), &Range{min, max, rangeType}, &Limit{0, -1})
|
return NewRangeLimitIterator(db.NewIterator(), &Range{min, max, rangeType}, &Limit{0, -1})
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,8 @@ type IDB interface {
|
||||||
NewSnapshot() (ISnapshot, error)
|
NewSnapshot() (ISnapshot, error)
|
||||||
|
|
||||||
Begin() (Tx, error)
|
Begin() (Tx, error)
|
||||||
|
|
||||||
|
Compact() error
|
||||||
}
|
}
|
||||||
|
|
||||||
type ISnapshot interface {
|
type ISnapshot interface {
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
"github.com/siddontang/goleveldb/leveldb/filter"
|
"github.com/siddontang/goleveldb/leveldb/filter"
|
||||||
"github.com/siddontang/goleveldb/leveldb/opt"
|
"github.com/siddontang/goleveldb/leveldb/opt"
|
||||||
"github.com/siddontang/goleveldb/leveldb/storage"
|
"github.com/siddontang/goleveldb/leveldb/storage"
|
||||||
|
"github.com/siddontang/goleveldb/leveldb/util"
|
||||||
|
|
||||||
"github.com/siddontang/ledisdb/config"
|
"github.com/siddontang/ledisdb/config"
|
||||||
"github.com/siddontang/ledisdb/store/driver"
|
"github.com/siddontang/ledisdb/store/driver"
|
||||||
|
@ -180,6 +181,10 @@ func (db *DB) NewSnapshot() (driver.ISnapshot, error) {
|
||||||
return s, nil
|
return s, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *DB) Compact() error {
|
||||||
|
return db.db.CompactRange(util.Range{nil, nil})
|
||||||
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
driver.Register(Store{})
|
driver.Register(Store{})
|
||||||
driver.Register(MemStore{})
|
driver.Register(MemStore{})
|
||||||
|
|
|
@ -270,6 +270,11 @@ func (db *DB) Begin() (driver.Tx, error) {
|
||||||
return nil, driver.ErrTxSupport
|
return nil, driver.ErrTxSupport
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *DB) Compact() error {
|
||||||
|
C.leveldb_compact_range(db.db, nil, 0, nil, 0)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
driver.Register(Store{})
|
driver.Register(Store{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -270,6 +270,11 @@ func (db *DB) Begin() (driver.Tx, error) {
|
||||||
return nil, driver.ErrTxSupport
|
return nil, driver.ErrTxSupport
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *DB) Compact() error {
|
||||||
|
C.leveldb_compact_range(db.db, nil, 0, nil, 0)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
driver.Register(Store{})
|
driver.Register(Store{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -240,9 +240,6 @@ func (db MDB) Path() string {
|
||||||
return db.path
|
return db.path
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db MDB) Compact() {
|
|
||||||
}
|
|
||||||
|
|
||||||
func (db MDB) iterator(rdonly bool) *MDBIterator {
|
func (db MDB) iterator(rdonly bool) *MDBIterator {
|
||||||
flags := uint(0)
|
flags := uint(0)
|
||||||
if rdonly {
|
if rdonly {
|
||||||
|
@ -286,6 +283,10 @@ func (db MDB) NewSnapshot() (driver.ISnapshot, error) {
|
||||||
return newSnapshot(db)
|
return newSnapshot(db)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db MDB) Compact() error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
driver.Register(Store{})
|
driver.Register(Store{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -296,6 +296,11 @@ func (db *DB) Begin() (driver.Tx, error) {
|
||||||
return nil, driver.ErrTxSupport
|
return nil, driver.ErrTxSupport
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *DB) Compact() error {
|
||||||
|
C.rocksdb_compact_range(db.db, nil, 0, nil, 0)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
driver.Register(Store{})
|
driver.Register(Store{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ func Open(cfg *config.Config) (*DB, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
db := &DB{idb}
|
db := &DB{idb, s.String()}
|
||||||
|
|
||||||
return db, nil
|
return db, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,6 +148,9 @@ func checkIterator(it *RangeLimitIterator, cv ...int) error {
|
||||||
v := make([]string, 0, len(cv))
|
v := make([]string, 0, len(cv))
|
||||||
for ; it.Valid(); it.Next() {
|
for ; it.Valid(); it.Next() {
|
||||||
k := it.Key()
|
k := it.Key()
|
||||||
|
if string(it.Value()) != "value" {
|
||||||
|
return fmt.Errorf("invalid value")
|
||||||
|
}
|
||||||
v = append(v, string(k))
|
v = append(v, string(k))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,7 +178,7 @@ func testIterator(db *DB, t *testing.T) {
|
||||||
|
|
||||||
for i := 0; i < 10; i++ {
|
for i := 0; i < 10; i++ {
|
||||||
key := []byte(fmt.Sprintf("key_%d", i))
|
key := []byte(fmt.Sprintf("key_%d", i))
|
||||||
value := []byte("")
|
value := []byte("value")
|
||||||
db.Put(key, value)
|
db.Put(key, value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue