aboutsummaryrefslogtreecommitdiffstats
path: root/blockdb
diff options
context:
space:
mode:
authorMission Liao <mission.liao@dexon.org>2018-08-28 13:13:21 +0800
committerGitHub <noreply@github.com>2018-08-28 13:13:21 +0800
commit7e9d2db5576d697b578669c935b2e7bbf9422ec7 (patch)
treee4fb9f4b95b23934a142a88ee05fbd49dff50b3c /blockdb
parent9c8f9a447bfd768a7b29db904bd604410ec66a09 (diff)
downloadtangerine-consensus-7e9d2db5576d697b578669c935b2e7bbf9422ec7.tar
tangerine-consensus-7e9d2db5576d697b578669c935b2e7bbf9422ec7.tar.gz
tangerine-consensus-7e9d2db5576d697b578669c935b2e7bbf9422ec7.tar.bz2
tangerine-consensus-7e9d2db5576d697b578669c935b2e7bbf9422ec7.tar.lz
tangerine-consensus-7e9d2db5576d697b578669c935b2e7bbf9422ec7.tar.xz
tangerine-consensus-7e9d2db5576d697b578669c935b2e7bbf9422ec7.tar.zst
tangerine-consensus-7e9d2db5576d697b578669c935b2e7bbf9422ec7.zip
core: tune performance (#73)
- Avoid using recursive function in critical path. - Do not write through when using levelDB. Things put to levelDB would be safe from panic even we didn't force to write through every time. - Dump count of confirmed blocks proposed by self. - Avoid allocating variables in loop. - Return length of acking node set, we only need that when total ordering. - Fix potential bug: make sure win records updated when acking height vectors of candidates are changed. - Keep dirty validators in slice. - Add cache for objects to ease the pressure to garbage collector. - Cache global acking status when total ordering. - Add method to recycle blocks. - Marshal JSON should be called once for each broadcast. - Make updateWinRecord called in parallel. - Log average / deviation of latencies when simulation finished.
Diffstat (limited to 'blockdb')
-rw-r--r--blockdb/level-db.go12
1 files changed, 2 insertions, 10 deletions
diff --git a/blockdb/level-db.go b/blockdb/level-db.go
index dcceb2e..79099c0 100644
--- a/blockdb/level-db.go
+++ b/blockdb/level-db.go
@@ -21,7 +21,6 @@ import (
"encoding/json"
"github.com/syndtr/goleveldb/leveldb"
- "github.com/syndtr/goleveldb/leveldb/opt"
"github.com/dexon-foundation/dexon-consensus-core/common"
"github.com/dexon-foundation/dexon-consensus-core/core/types"
@@ -93,9 +92,7 @@ func (lvl *LevelDBBackedBlockDB) Update(block types.Block) (err error) {
err = lvl.db.Put(
[]byte(block.Hash[:]),
marshaled,
- &opt.WriteOptions{
- Sync: true,
- })
+ nil)
if err != nil {
return
}
@@ -112,15 +109,10 @@ func (lvl *LevelDBBackedBlockDB) Put(block types.Block) (err error) {
err = ErrBlockExists
return
}
- syncedOpt := &opt.WriteOptions{
- // We should force to sync for each write, it's safer
- // from crash.
- Sync: true,
- }
err = lvl.db.Put(
[]byte(block.Hash[:]),
marshaled,
- syncedOpt)
+ nil)
if err != nil {
return
}