diff --git a/blockstore/badger/blockstore.go b/blockstore/badger/blockstore.go index 2c00f424077..ff3781ca4d1 100644 --- a/blockstore/badger/blockstore.go +++ b/blockstore/badger/blockstore.go @@ -288,9 +288,6 @@ func (b *Blockstore) PutMany(blocks []blocks.Block) error { return ErrBlockstoreClosed } - batch := b.DB.NewWriteBatch() - defer batch.Cancel() - // toReturn tracks the byte slices to return to the pool, if we're using key // prefixing. we can't return each slice to the pool after each Set, because // badger holds on to the slice. @@ -304,6 +301,9 @@ func (b *Blockstore) PutMany(blocks []blocks.Block) error { }() } + batch := b.DB.NewWriteBatch() + defer batch.Cancel() + for _, block := range blocks { k, pooled := b.PooledStorageKey(block.Cid()) if pooled { @@ -342,9 +342,6 @@ func (b *Blockstore) DeleteMany(cids []cid.Cid) error { return ErrBlockstoreClosed } - batch := b.DB.NewWriteBatch() - defer batch.Cancel() - // toReturn tracks the byte slices to return to the pool, if we're using key // prefixing. we can't return each slice to the pool after each Set, because // badger holds on to the slice. @@ -358,6 +355,9 @@ func (b *Blockstore) DeleteMany(cids []cid.Cid) error { }() } + batch := b.DB.NewWriteBatch() + defer batch.Cancel() + for _, cid := range cids { k, pooled := b.PooledStorageKey(cid) if pooled {