The ledger system in Hyperledger fabric uses levelDB. By definition, LevelDB allows concurrent
writers to safely insert data into the database by providing internal synchronization. LevelDB uses
very coarse-grained synchronization which forces all writes to proceed in an ordered, first-come-first-
served basis, effectively reduces throughput to a single thread. State database options include
LevelDB and CouchDB. LevelDB is the default key-value state database embedded in the peer
process. CouchDB is an optional alternative external state database. Like the LevelDB key-value store,
CouchDB can store any binary data that is modeled in chaincode (CouchDB attachment functionality
is used internally for non-JSON binary data). But as a JSON document store, CouchDB additionally
enables rich query against the chaincode data, when chaincode values (e.g. assets) are modeled as
JSON data.