Commit 017b9f7e authored by Martin Holst Swende's avatar Martin Holst Swende Committed by Péter Szilágyi

core, ethdb: reuse database batches (#15989)

* leveldb: Update leveldb to 211f780 (poolfix)

* core, ethdb: reuse database batches
parent 6198c53e
......@@ -749,7 +749,7 @@ func (bc *BlockChain) InsertReceiptChain(blockChain types.Blocks, receiptChain [
return 0, err
}
bytes += batch.ValueSize()
batch = bc.chainDb.NewBatch()
batch.Reset()
}
}
if batch.ValueSize() > 0 {
......
......@@ -299,6 +299,10 @@ func (b *ldbBatch) ValueSize() int {
return b.size
}
func (b *ldbBatch) Reset() {
b.b.Reset()
}
type table struct {
db Database
prefix string
......@@ -358,3 +362,7 @@ func (tb *tableBatch) Write() error {
func (tb *tableBatch) ValueSize() int {
return tb.batch.ValueSize()
}
func (tb *tableBatch) Reset() {
tb.batch.Reset()
}
......@@ -41,4 +41,6 @@ type Batch interface {
Putter
ValueSize() int // amount of data in the batch
Write() error
// Reset resets the batch for reuse
Reset()
}
......@@ -123,3 +123,8 @@ func (b *memBatch) Write() error {
func (b *memBatch) ValueSize() int {
return b.size
}
func (b *memBatch) Reset() {
b.writes = b.writes[:0]
b.size = 0
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment