diff --git a/bzz/dbstore.go b/bzz/dbstore.go index 2053b4a136..cc5db966c6 100644 --- a/bzz/dbstore.go +++ b/bzz/dbstore.go @@ -284,7 +284,6 @@ func (s *dbStore) Put(chunk *Chunk) { batch.Put(ikey, idata) s.db.Write(batch) - } // try to find index; if found, update access cnt and return true diff --git a/bzz/dpa_test.go b/bzz/dpa_test.go index a514654124..82dfb40a2c 100644 --- a/bzz/dpa_test.go +++ b/bzz/dpa_test.go @@ -2,7 +2,6 @@ package bzz import ( "bytes" - "fmt" "github.com/ethereum/go-ethereum/bzz/test" "os" "testing" @@ -16,25 +15,23 @@ func TestDPA(t *testing.T) { if err != nil { t.Errorf("DB error: %v", err) } - // memStore := newMemStore(dbStore) - // localStore := &localStore{ - // memStore, - // dbStore, - // } + memStore := newMemStore(dbStore) + localStore := &localStore{ + memStore, + dbStore, + } chunker := &TreeChunker{} chunker.Init() dpa := &DPA{ Chunker: chunker, - ChunkStore: dbStore, + ChunkStore: localStore, } dpa.Start() - reader, slice := testDataReader(0x100) - fmt.Printf("Chunk size: %d.", len(slice)) + reader, slice := testDataReader(0x1000000) key, err := dpa.Store(reader) if err != nil { t.Errorf("Store error: %v", err) } - // time.Sleep(2 * time.Second) resultReader := dpa.Retrieve(key) resultSlice := make([]byte, len(slice)) n, err := resultReader.ReadAt(resultSlice, 0) @@ -47,5 +44,19 @@ func TestDPA(t *testing.T) { if !bytes.Equal(slice, resultSlice) { t.Errorf("Comparison error.") } - // time.Sleep(time.Second) + localStore.memStore = newMemStore(dbStore) + resultReader = dpa.Retrieve(key) + for i, _ := range resultSlice { + resultSlice[i] = 0 + } + n, err = resultReader.ReadAt(resultSlice, 0) + if err != nil { + t.Errorf("Retrieve error after removing memStore: %v", err) + } + if n != len(slice) { + t.Errorf("Slice size error after removing memStore got %d, expected %d.", n, len(slice)) + } + if !bytes.Equal(slice, resultSlice) { + t.Errorf("Comparison error after removing memStore.") + } } diff --git a/bzz/localstore.go b/bzz/localstore.go index d5689b5245..6170ddf4c2 100644 --- a/bzz/localstore.go +++ b/bzz/localstore.go @@ -10,7 +10,7 @@ type localStore struct { // its integrity is checked ? func (self *localStore) Put(chunk *Chunk) { self.memStore.Put(chunk) - self.dbStore.Put(chunk) + go self.dbStore.Put(chunk) } // Get(chunk *Chunk) looks up a chunk in the local stores