Uploaded image for project: 'Fabric'
  1. Fabric
  2. FAB-788

As a fabric developer, I want to replace RocksDB with another key/value datastore

    XMLWordPrintable

Details

    • Story
    • Status: Closed
    • High
    • Resolution: Done
    • None
    • v1.0.0
    • fabric-ledger
    • 8
    • Unset
    • Unset
    • Unset

    Description

      RocksDB has a patent infringement license in it from Facebook. The legal team is therefore not comfortable with using it. For details read: https://github.com/facebook/rocksdb/blob/master/PATENTS

      The alternatives include
      1. LevelDB (https://github.com/google/leveldb) with a go wrapper (https://github.com/jmhodges/levigo),
      2. goleveldb (https://github.com/syndtr/goleveldb) - a porting of leveldb in golang
      3. BoltDB (https://github.com/boltdb/bolt)

      BoltDB is suitable for read heavy workloads (e.g., LDAP) but has a relatively poor performance for read-write workloads.
      Of the other two options, goleveldb is chosen because it is implemented in golang and hence easy to intergate and maintain.
      In addition, as a precedent, ethereum go implementation also uses this package (https://github.com/ethereum/go-ethereum/blob/master/ethdb/database.go)

      Attachments

        Activity

          People

            manish-sethi Manish Sethi
            denyeart David Enyeart
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: