swarm: use storage.NewMemStorage()

This commit is contained in:
Anton Evangelatov 2018-11-20 12:56:05 +01:00
parent 3bcc073d5e
commit 045aceef6a
6 changed files with 18 additions and 45 deletions

View file

@ -69,19 +69,13 @@ func init() {
log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(*loglevel), log.StreamHandler(colorable.NewColorableStderr(), log.TerminalFormat(true)))) log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(*loglevel), log.StreamHandler(colorable.NewColorableStderr(), log.TerminalFormat(true))))
} }
func createGlobalStore() (string, *mockdb.GlobalStore, error) { func createGlobalStore() (*mockdb.GlobalStore, error) {
var globalStore *mockdb.GlobalStore globalStore, err := mockdb.NewGlobalStore()
globalStoreDir, err := ioutil.TempDir("", "global.store")
if err != nil {
log.Error("Error initiating global store temp directory!", "err", err)
return "", nil, err
}
globalStore, err = mockdb.NewGlobalStore(globalStoreDir)
if err != nil { if err != nil {
log.Error("Error initiating global store!", "err", err) log.Error("Error initiating global store!", "err", err)
return "", nil, err return nil, err
} }
return globalStoreDir, globalStore, nil return globalStore, nil
} }
func newStreamerTester(t *testing.T, registryOptions *RegistryOptions) (*p2ptest.ProtocolTester, *Registry, *storage.LocalStore, func(), error) { func newStreamerTester(t *testing.T, registryOptions *RegistryOptions) (*p2ptest.ProtocolTester, *Registry, *storage.LocalStore, func(), error) {

View file

@ -268,15 +268,13 @@ func runSim(conf *synctestConfig, ctx context.Context, sim *simulation.Simulatio
// File retrieval check is repeated until all uploaded files are retrieved from all nodes // File retrieval check is repeated until all uploaded files are retrieved from all nodes
// or until the timeout is reached. // or until the timeout is reached.
var gDir string
var globalStore *mockdb.GlobalStore var globalStore *mockdb.GlobalStore
if *useMockStore { if *useMockStore {
gDir, globalStore, err = createGlobalStore() globalStore, err = createGlobalStore()
if err != nil { if err != nil {
return fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil") return fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil")
} }
defer func() { defer func() {
os.RemoveAll(gDir)
err := globalStore.Close() err := globalStore.Close()
if err != nil { if err != nil {
log.Error("Error closing global store! %v", "err", err) log.Error("Error closing global store! %v", "err", err)
@ -476,14 +474,12 @@ func testSyncingViaDirectSubscribe(t *testing.T, chunkCount int, nodeCount int)
return err return err
} }
var gDir string
var globalStore *mockdb.GlobalStore var globalStore *mockdb.GlobalStore
if *useMockStore { if *useMockStore {
gDir, globalStore, err = createGlobalStore() globalStore, err = createGlobalStore()
if err != nil { if err != nil {
return fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil") return fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil")
} }
defer os.RemoveAll(gDir)
} }
// File retrieval check is repeated until all uploaded files are retrieved from all nodes // File retrieval check is repeated until all uploaded files are retrieved from all nodes
// or until the timeout is reached. // or until the timeout is reached.

View file

@ -71,7 +71,7 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck
"streamer": func(ctx *adapters.ServiceContext, bucket *sync.Map) (s node.Service, cleanup func(), err error) { "streamer": func(ctx *adapters.ServiceContext, bucket *sync.Map) (s node.Service, cleanup func(), err error) {
var store storage.ChunkStore var store storage.ChunkStore
var globalStore *mockdb.GlobalStore var globalStore *mockdb.GlobalStore
var gDir, datadir string var datadir string
node := ctx.Config.Node() node := ctx.Config.Node()
addr := network.NewAddr(node) addr := network.NewAddr(node)
@ -79,7 +79,7 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck
addr.OAddr[0] = byte(0) addr.OAddr[0] = byte(0)
if *useMockStore { if *useMockStore {
gDir, globalStore, err = createGlobalStore() globalStore, err = createGlobalStore()
if err != nil { if err != nil {
return nil, nil, fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil") return nil, nil, fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil")
} }
@ -99,7 +99,6 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck
if err != nil { if err != nil {
log.Error("Error closing global store! %v", "err", err) log.Error("Error closing global store! %v", "err", err)
} }
os.RemoveAll(gDir)
} }
} }
localStore := store.(*storage.LocalStore) localStore := store.(*storage.LocalStore)

View file

@ -22,6 +22,7 @@ import (
"errors" "errors"
"github.com/syndtr/goleveldb/leveldb" "github.com/syndtr/goleveldb/leveldb"
"github.com/syndtr/goleveldb/leveldb/opt"
) )
// ErrNotFound is returned when no results are returned from the database // ErrNotFound is returned when no results are returned from the database
@ -35,9 +36,11 @@ type DBStore struct {
db *leveldb.DB db *leveldb.DB
} }
const openFileLimit = 32
// NewDBStore creates a new instance of DBStore. // NewDBStore creates a new instance of DBStore.
func NewDBStore(path string) (s *DBStore, err error) { func NewDBStore(path string) (s *DBStore, err error) {
db, err := leveldb.OpenFile(path, nil) db, err := leveldb.OpenFile(path, &opt.Options{OpenFilesCacheCapacity: openFileLimit})
if err != nil { if err != nil {
return nil, err return nil, err
} }

View file

@ -25,6 +25,7 @@ import (
"io/ioutil" "io/ioutil"
"github.com/syndtr/goleveldb/leveldb" "github.com/syndtr/goleveldb/leveldb"
"github.com/syndtr/goleveldb/leveldb/storage"
"github.com/syndtr/goleveldb/leveldb/util" "github.com/syndtr/goleveldb/leveldb/util"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
@ -40,8 +41,8 @@ type GlobalStore struct {
} }
// NewGlobalStore creates a new instance of GlobalStore. // NewGlobalStore creates a new instance of GlobalStore.
func NewGlobalStore(path string) (s *GlobalStore, err error) { func NewGlobalStore() (s *GlobalStore, err error) {
db, err := leveldb.OpenFile(path, nil) db, err := leveldb.Open(storage.NewMemStorage(), nil)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View file

@ -19,8 +19,6 @@
package db package db
import ( import (
"io/ioutil"
"os"
"testing" "testing"
"github.com/ethereum/go-ethereum/swarm/storage/mock/test" "github.com/ethereum/go-ethereum/swarm/storage/mock/test"
@ -29,13 +27,7 @@ import (
// TestDBStore is running a test.MockStore tests // TestDBStore is running a test.MockStore tests
// using test.MockStore function. // using test.MockStore function.
func TestDBStore(t *testing.T) { func TestDBStore(t *testing.T) {
dir, err := ioutil.TempDir("", "mock_"+t.Name()) store, err := NewGlobalStore()
if err != nil {
panic(err)
}
defer os.RemoveAll(dir)
store, err := NewGlobalStore(dir)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -47,25 +39,13 @@ func TestDBStore(t *testing.T) {
// TestImportExport is running a test.ImportExport tests // TestImportExport is running a test.ImportExport tests
// using test.MockStore function. // using test.MockStore function.
func TestImportExport(t *testing.T) { func TestImportExport(t *testing.T) {
dir1, err := ioutil.TempDir("", "mock_"+t.Name()+"_exporter") store1, err := NewGlobalStore()
if err != nil {
panic(err)
}
defer os.RemoveAll(dir1)
store1, err := NewGlobalStore(dir1)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
defer store1.Close() defer store1.Close()
dir2, err := ioutil.TempDir("", "mock_"+t.Name()+"_importer") store2, err := NewGlobalStore()
if err != nil {
panic(err)
}
defer os.RemoveAll(dir2)
store2, err := NewGlobalStore(dir2)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }