@@ -115,28 +115,39 @@ references:
115115
116116# Introduction
117117
118- As part of the project to reduce ` cardano-node ` ’s memory use[ @utxo-db ] (colloquially known
119- as UTxO-HD), a high-performance disk backend has been developed as an
120- arm’s-length project by Well-Typed LLP on behalf of Intersect MBO and previously
121- Input Output Global, Inc. (IOG). The intent is for the backend to be integrated
122- into the consensus layer of ` cardano-node ` , specifically to be used for storing
123- large parts of the Cardano ledger state. The backend is now feature-complete and
124- should satisfy all functional requirements, and it has favourable results
125- regarding the performance requirements.
118+ As part of the project to reduce ` cardano-node ` ’s memory use[ @utxo-db ] , by
119+ storing the bulk of the ledger state on disk (colloquially known as
120+ "UTxO-HD"[ ^ 1 ] ), a high-performance disk backend has been developed as an
121+ arm’s-length project by Well-Typed LLP on behalf of Intersect MBO[ ^ 2 ] . The
122+ intent is for the backend to be integrated into the consensus layer of
123+ ` cardano-node ` , specifically to be used for storing the large parts of the
124+ Cardano ledger state.
125+
126+ This backend is now complete. It satisfies all its functional requirements, and
127+ meets all its performance requirements, including stretch targets.
128+
129+ [ ^ 1 ] : "UTxO-HD" is a classic project-manager's misnomer. It is not just about
130+ the UTxO, but all of the ledger state, and it is not about hard drives.
131+ Indeed the performance of hard drives is too low to support the feature.
132+ A better project name would be "On-disk ledger state", but there's no way
133+ to remove poorly chosen names from people's heads once they're firmly
134+ engrained.
135+
136+ [ ^ 2 ] : And previously on behalf of Input Output Global, Inc. (IOG).
126137
127138The backend is implemented as a Haskell library called ` lsm-tree ` [ @lsm-tree ] , which
128139provides efficient on-disk key–value storage using log-structured merge-trees,
129140or LSM-trees for short. An LSM-tree is a data structure for key–value mappings
130- that is optimized for large tables with a high insertion volume , such as the
141+ that is optimized for large tables with a high insertion rate , such as the
131142UTxO set and other stake-related data. The library has a number of custom
132143features that are primarily tailored towards use cases of the consensus layer,
133- but it should be useful for the broader Haskell community as well.
144+ but the library should be useful for the broader Haskell community as well.
134145
135146Currently, a UTxO-HD ` cardano-node ` already exists, but it is an MVP that uses
136- off-the-shelf database software (LMDB) to store parts of the ledger state on
147+ off-the-shelf database software (LMDB) to store a part of the ledger state on
137148disk[ @utxo-db-api ] . Though the LMDB-based solution is suitable for the current state of the
138149Cardano blockchain, it is not suitable to achieve Cardano’s long-term business
139- requirements, such as high throughput with limited system resources. The goal of
150+ requirements[ @ utxo-db , Section 3 ] , such as high throughput with limited system resources. The goal of
140151` lsm-tree ` is to pave the way for achieving said business requirements,
141152providing the necessary foundation on which technologies like Ouroboros Leios
142153can build.
0 commit comments