diff options
author | Mission Liao <mission.liao@dexon.org> | 2018-08-28 13:13:21 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-28 13:13:21 +0800 |
commit | 7e9d2db5576d697b578669c935b2e7bbf9422ec7 (patch) | |
tree | e4fb9f4b95b23934a142a88ee05fbd49dff50b3c /blockdb | |
parent | 9c8f9a447bfd768a7b29db904bd604410ec66a09 (diff) | |
download | tangerine-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.go | 12 |
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 } |