Skip to content

Commit

Permalink
[FAB-1816]Simplify bool expression in kvledger
Browse files Browse the repository at this point in the history
https://jira.hyperledger.org/browse/FAB-1816

Change-Id: I6d2668310966e81af8beabec395788c8743d12e6
Signed-off-by: grapebaba <281165273@qq.com>
  • Loading branch information
GrapeBaBa committed Feb 8, 2017
1 parent 1558264 commit 1b6a73d
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 33 deletions.
60 changes: 29 additions & 31 deletions core/ledger/kvledger/kv_ledger.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,8 @@ import (
"github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/txmgr"
"github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr"
"github.com/hyperledger/fabric/core/ledger/ledgerconfig"

logging "github.com/op/go-logging"

"github.com/hyperledger/fabric/protos/common"
logging "github.com/op/go-logging"
)

var logger = logging.MustGetLogger("kvledger")
Expand Down Expand Up @@ -73,7 +71,7 @@ func recoverDB(l *kvLedger) error {
//If there is no block in blockstorage, nothing to recover.
info, _ := l.blockStore.GetBlockchainInfo()
if info.Height == 0 {
logger.Debugf("Block storage is empty.")
logger.Debug("Block storage is empty.")
return nil
}

Expand All @@ -92,7 +90,7 @@ func recoverDB(l *kvLedger) error {
return err
}

if ledgerconfig.IsHistoryDBEnabled() == true {
if ledgerconfig.IsHistoryDBEnabled() {
//Getting savepointValue stored in the history DB
if historyDBSavepoint, err = l.historyDB.GetBlockNumFromSavepoint(); err != nil {
return err
Expand All @@ -103,53 +101,53 @@ func recoverDB(l *kvLedger) error {
}
}

if recoverHistoryDB == false && recoverStateDB == false {
if !recoverHistoryDB && !recoverStateDB {
//If nothing needs recovery, return
if ledgerconfig.IsHistoryDBEnabled() == true {
logger.Debugf("Both state database and history database are in sync with the block storage. No need to perform recovery operation.")
if ledgerconfig.IsHistoryDBEnabled() {
logger.Debug("Both state database and history database are in sync with the block storage. No need to perform recovery operation.")
} else {
logger.Debugf("State database is in sync with the block storage.")
logger.Debug("State database is in sync with the block storage.")
}
return nil
} else if recoverHistoryDB == false && recoverStateDB == true {
} else if !recoverHistoryDB && recoverStateDB {
logger.Debugf("State database is behind block storage by %d blocks. Recovering state database.", info.Height-stateDBSavepoint)
if err = recommitLostBlocks(l, stateDBSavepoint, info.Height, true, false); err != nil {
if err = recommitLostBlocks(l, stateDBSavepoint, info.Height, recoverStateDB, recoverHistoryDB); err != nil {
return err
}
} else if recoverHistoryDB == true && recoverStateDB == false {
} else if recoverHistoryDB && !recoverStateDB {
logger.Debugf("History database is behind block storage by %d blocks. Recovering history database.", info.Height-historyDBSavepoint)
if err = recommitLostBlocks(l, historyDBSavepoint, info.Height, false, true); err != nil {
if err = recommitLostBlocks(l, historyDBSavepoint, info.Height, recoverStateDB, recoverHistoryDB); err != nil {
return err
}
} else if recoverHistoryDB == true && recoverStateDB == true {
} else if recoverHistoryDB && recoverStateDB {
logger.Debugf("State database is behind block storage by %d blocks, and history database is behind block storage by %d blocks. Recovering both state and history database.", info.Height-stateDBSavepoint, info.Height-historyDBSavepoint)
//If both state DB and history DB need to be recovered, first
//we need to ensure that the state DB and history DB are in same state
//before recommitting lost blocks.
if stateDBSavepoint > historyDBSavepoint {
logger.Debugf("History database is behind the state database by %d blocks", stateDBSavepoint-historyDBSavepoint)
logger.Debugf("Making the history DB in sync with state DB")
if err = recommitLostBlocks(l, historyDBSavepoint, stateDBSavepoint, false, true); err != nil {
logger.Debug("Making the history DB in sync with state DB")
if err = recommitLostBlocks(l, historyDBSavepoint, stateDBSavepoint, !recoverStateDB, recoverHistoryDB); err != nil {
return err
}
logger.Debugf("Making both history DB and state DB in sync with the block storage")
if err = recommitLostBlocks(l, stateDBSavepoint, info.Height, true, true); err != nil {
logger.Debug("Making both history DB and state DB in sync with the block storage")
if err = recommitLostBlocks(l, stateDBSavepoint, info.Height, recoverStateDB, recoverHistoryDB); err != nil {
return err
}
} else if stateDBSavepoint < historyDBSavepoint {
logger.Debugf("State database is behind the history database by %d blocks", historyDBSavepoint-stateDBSavepoint)
logger.Debugf("Making the state DB in sync with history DB")
if err = recommitLostBlocks(l, stateDBSavepoint, historyDBSavepoint, true, false); err != nil {
logger.Debug("Making the state DB in sync with history DB")
if err = recommitLostBlocks(l, stateDBSavepoint, historyDBSavepoint, recoverStateDB, !recoverHistoryDB); err != nil {
return err
}
logger.Debugf("Making both state DB and history DB in sync with the block storage")
if err = recommitLostBlocks(l, historyDBSavepoint, info.Height, true, true); err != nil {
logger.Debug("Making both state DB and history DB in sync with the block storage")
if err = recommitLostBlocks(l, historyDBSavepoint, info.Height, recoverStateDB, recoverHistoryDB); err != nil {
return err
}
} else {
logger.Debugf("State and history database are in same state but behind block storage")
logger.Debugf("Making both state DB and history DB in sync with the block storage")
if err = recommitLostBlocks(l, stateDBSavepoint, info.Height, true, true); err != nil {
logger.Debug("State and history database are in same state but behind block storage")
logger.Debug("Making both state DB and history DB in sync with the block storage")
if err = recommitLostBlocks(l, stateDBSavepoint, info.Height, recoverStateDB, recoverHistoryDB); err != nil {
return err
}
}
Expand Down Expand Up @@ -179,7 +177,7 @@ func recommitLostBlocks(l *kvLedger, savepoint uint64, blockHeight uint64, recov
if block, err = l.GetBlockByNumber(blockNumber); err != nil {
return err
}
if recoverStateDB == true {
if recoverStateDB {
logger.Debugf("Constructing updateSet for the block %d", blockNumber)
if err = l.txtmgmt.ValidateAndPrepare(block, false); err != nil {
return err
Expand All @@ -189,7 +187,7 @@ func recommitLostBlocks(l *kvLedger, savepoint uint64, blockHeight uint64, recov
return err
}
}
if ledgerconfig.IsHistoryDBEnabled() == true && recoverHistoryDB == true {
if ledgerconfig.IsHistoryDBEnabled() && recoverHistoryDB {
if err = l.historyDB.Commit(block); err != nil {
return err
}
Expand Down Expand Up @@ -257,24 +255,24 @@ func (l *kvLedger) NewHistoryQueryExecutor() (ledger.HistoryQueryExecutor, error
func (l *kvLedger) Commit(block *common.Block) error {
var err error

logger.Debugf("Validating block")
logger.Debug("Validating block")
err = l.txtmgmt.ValidateAndPrepare(block, true)
if err != nil {
return err
}

logger.Debugf("Committing block to storage")
logger.Debug("Committing block to storage")
if err = l.blockStore.AddBlock(block); err != nil {
return err
}

logger.Debugf("Committing block transactions to state database")
logger.Debug("Committing block transactions to state database")
if err = l.txtmgmt.Commit(); err != nil {
panic(fmt.Errorf(`Error during commit to txmgr:%s`, err))
}

// History database could be written in parallel with state and/or async as a future optimization
if ledgerconfig.IsHistoryDBEnabled() == true {
if ledgerconfig.IsHistoryDBEnabled() {
logger.Debugf("Committing block transactions to history database")
if err := l.historyDB.Commit(block); err != nil {
panic(fmt.Errorf(`Error during commit to history db:%s`, err))
Expand Down
4 changes: 2 additions & 2 deletions core/ledger/kvledger/kv_ledger_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,10 @@ func NewProvider() (ledger.PeerLedgerProvider, error) {
// Initialize the versioned database (state database)
var vdbProvider statedb.VersionedDBProvider
if !ledgerconfig.IsCouchDBEnabled() {
logger.Debugf("Constructing leveldb VersionedDBProvider")
logger.Debug("Constructing leveldb VersionedDBProvider")
vdbProvider = stateleveldb.NewVersionedDBProvider()
} else {
logger.Debugf("Constructing CouchDB VersionedDBProvider")
logger.Debug("Constructing CouchDB VersionedDBProvider")
var err error
vdbProvider, err = statecouchdb.NewVersionedDBProvider()
if err != nil {
Expand Down

0 comments on commit 1b6a73d

Please sign in to comment.