1. 03 Feb, 2017 1 commit
    • manish's avatar
      Move Blockstorage code under /fabric/common package · 2a16532c
      manish authored
      https://jira.hyperledger.org/browse/FAB-2022
      
      
      
      This changes introduced by this CR
      - Moves the block storage code from package
      core/ledger/blkstorage to common/ledger/blkstorage
      
      - Splits the ledger_interface.go so as to move common interfaces
      and data type to common/ledger package
      
      - Moves some of the util functions to common/ledger package
      
      - Moves core/ledger/ordererledger package to orderer/ledger/fsledger
      orderer folks can futher rename/refactor this as seems suitable to them
      
      Change-Id: I759e16f00dc2ec9bb62196121083cf48eae76948
      Signed-off-by: default avatarmanish <manish.sethi@gmail.com>
      2a16532c
  2. 17 Jan, 2017 1 commit
    • manish's avatar
      SingleLevelDB for block index · 8cdd0f4d
      manish authored
      https://jira.hyperledger.org/browse/FAB-1664
      
      
      
      This changeset:
      - Renames package ledger/util/db to ledger/util/leveldbhelper
      - Implements a leveldb provider
        (that enables using same leveldb instance as a multiple logical dbs)
        in util package for being able to reuse across statedb, index,
        and later for historydb
      - Implements a provider as a single point of invocation
        for managing multiple block storage
      - Uses a single leveldb instance for block storage index
      - Makes the structures other than providers as private
        to their respective packages
      
      Change-Id: I5f0b3b9aa8ef3ac1ccdce4f3c6fa6d842b5318c1
      Signed-off-by: default avatarmanish <manish.sethi@gmail.com>
      8cdd0f4d
  3. 08 Jan, 2017 1 commit
  4. 04 Dec, 2016 1 commit
    • manish's avatar
      This commit changes the versioning scheme for the keys · 836fdc69
      manish authored
      https://jira.hyperledger.org/browse/FAB-601
      
      
      The height based versioning scheme assigns a version to the key equal to the  height of the transaction that committed it last.
      The benefits include -
      1) We do not need to maintain delete markers for the deleted keys
      2) Makes recovery of state db easier, particularly for couchdb
      3) Enables efficient validation - (in future - does not require validating against latest state has potential for in-memory validation)
      4) Has potential for providing snapshot isolation across sharded data nodes in the future
      
      Change-Id: I5a079c9be5966c349b7bb6c8df6e1a45d9889f1f
      Signed-off-by: default avatarmanish <manish.sethi@gmail.com>
      836fdc69
  5. 18 Nov, 2016 1 commit
  6. 09 Nov, 2016 1 commit
  7. 26 Oct, 2016 1 commit
  8. 20 Sep, 2016 1 commit
    • manish's avatar
      Disable WAL for block storage DB · 0df6a8d1
      manish authored
      
      
      (Rocks) DB WAL adds overheads while using the DB for saving checkpoints
      for block storage. Avoiding writing to WAL translates the write workload
      (appending blocks to the blockfile) into a sequential disk writes.
      
      This commit changes the way checkpoints are saved - checkpoints are
      written to DB as before, however since WAL is disabled, the checkpoint
      stays in-memory only. The in-memory checkpoint is flushed explicitly to
      disk (via DB flush) at the time of new block file creation. The in-memory
      checkpoint would implicitly also be flushed to memory at the time of DB
      shutdown. However, if a crash takes place, the checkpoint available in the
      DB would be behind the actual block file status. In order to handle this
      crash scenario, this commit also adds code to perform a scan of the block
      file beyond the last saved checkpoint and update the checkpoint.
      
      Change-Id: Ie88646b225abaa50b595833f5e7ed8d4facae920
      Signed-off-by: default avatarmanish <manish.sethi@gmail.com>
      0df6a8d1
  9. 15 Sep, 2016 1 commit