Просмотр исходного кода

common, ethdb: removed caching and LastTD

obscuren 10 лет назад
Родитель
Сommit
020006a8ed
2 измененных файлов с 6 добавлено и 59 удалено
  1. 0 1
      common/db.go
  2. 6 58
      ethdb/database.go

+ 0 - 1
common/db.go

@@ -5,7 +5,6 @@ type Database interface {
 	Put(key []byte, value []byte)
 	Get(key []byte) ([]byte, error)
 	Delete(key []byte) error
-	LastKnownTD() []byte
 	Close()
 	Flush() error
 }

+ 6 - 58
ethdb/database.go

@@ -1,8 +1,6 @@
 package ethdb
 
 import (
-	"sync"
-
 	"github.com/ethereum/go-ethereum/compression/rle"
 	"github.com/ethereum/go-ethereum/logger"
 	"github.com/ethereum/go-ethereum/logger/glog"
@@ -15,14 +13,10 @@ import (
 var OpenFileLimit = 64
 
 type LDBDatabase struct {
+	// filename for reporting
 	fn string
-
-	mu sync.Mutex
+	// LevelDB instance
 	db *leveldb.DB
-
-	queue map[string][]byte
-
-	quit chan struct{}
 }
 
 // NewLDBDatabase returns a LevelDB wrapped object. LDBDatabase does not persist data by
@@ -40,85 +34,39 @@ func NewLDBDatabase(file string) (*LDBDatabase, error) {
 		return nil, err
 	}
 	database := &LDBDatabase{
-		fn:   file,
-		db:   db,
-		quit: make(chan struct{}),
+		fn: file,
+		db: db,
 	}
-	database.makeQueue()
 
 	return database, nil
 }
 
-func (self *LDBDatabase) makeQueue() {
-	self.queue = make(map[string][]byte)
-}
-
 // Put puts the given key / value to the queue
 func (self *LDBDatabase) Put(key []byte, value []byte) {
-	self.mu.Lock()
-	defer self.mu.Unlock()
-
-	self.queue[string(key)] = value
+	self.db.Put(key, rle.Compress(value), nil)
 }
 
 // Get returns the given key if it's present.
 func (self *LDBDatabase) Get(key []byte) ([]byte, error) {
-	self.mu.Lock()
-	defer self.mu.Unlock()
-
-	// Check queue first
-	if dat, ok := self.queue[string(key)]; ok {
-		return dat, nil
-	}
-
 	dat, err := self.db.Get(key, nil)
 	if err != nil {
 		return nil, err
 	}
-
 	return rle.Decompress(dat)
 }
 
 // Delete deletes the key from the queue and database
 func (self *LDBDatabase) Delete(key []byte) error {
-	self.mu.Lock()
-	defer self.mu.Unlock()
-
-	// make sure it's not in the queue
-	delete(self.queue, string(key))
-
 	return self.db.Delete(key, nil)
 }
 
-func (self *LDBDatabase) LastKnownTD() []byte {
-	data, _ := self.Get([]byte("LTD"))
-
-	if len(data) == 0 {
-		data = []byte{0x0}
-	}
-
-	return data
-}
-
 func (self *LDBDatabase) NewIterator() iterator.Iterator {
 	return self.db.NewIterator(nil, nil)
 }
 
 // Flush flushes out the queue to leveldb
 func (self *LDBDatabase) Flush() error {
-	self.mu.Lock()
-	defer self.mu.Unlock()
-
-	batch := new(leveldb.Batch)
-
-	for key, value := range self.queue {
-		batch.Put([]byte(key), rle.Compress(value))
-	}
-	self.makeQueue() // reset the queue
-
-	glog.V(logger.Detail).Infoln("Flush database: ", self.fn)
-
-	return self.db.Write(batch, nil)
+	return nil
 }
 
 func (self *LDBDatabase) Close() {