Skip to content

Commit 1060672

Browse files
committed
nix | wb: add utxo_lsmt attrs for LedgerDB.V2LSM config
1 parent e5ea401 commit 1060672

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

nix/nixos/cardano-node-service.nix

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,12 @@ let
117117
hasPrometheus = map (n: if isInt n then n + i else n) baseConfig.hasPrometheus;
118118
})
119119
)
120+
// optionalAttrs (cfg.withUtxoHdLsmt i){
121+
LedgerDB = {
122+
Backend = "V2LSM";
123+
LSMDatabasePath = cfg.lmdbDatabasePath i;
124+
};
125+
}
120126
// optionalAttrs (cfg.withUtxoHdLmdb i){
121127
LedgerDB = {
122128
Backend = "V1LMDB";
@@ -427,7 +433,7 @@ in {
427433
default = null;
428434
apply = x : if lib.isFunction x then x else if x == null then _: null else _: x;
429435
description = ''
430-
A node UTxO-HD LMDB path for performant disk I/O, for each instance.
436+
A node UTxO-HD on-disk (LMDB or LSM-trees) path for performant disk I/O, for each instance.
431437
This could point to a direct-access SSD, with a specifically created journal-less file system and optimized mount options.
432438
'';
433439
};
@@ -802,6 +808,16 @@ in {
802808
'';
803809
};
804810

811+
withUtxoHdLsmt = mkOption {
812+
type = funcToOr bool;
813+
default = false;
814+
apply = x: if lib.isFunction x then x else _: x;
815+
description = ''
816+
On a UTxO-HD enabled node, the in-memory backend is the default.
817+
This activates the on-disk backend (LSM-Trees) instead.
818+
'';
819+
};
820+
805821
extraArgs = mkOption {
806822
type = listOf str;
807823
default = [];

nix/workbench/service/nodes.nix

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ let
7676
# Allow for local clusters to have multiple LMDB directories in the same physical ssd_directory;
7777
# non-block producers (like the explorer node) keep using the in-memory backend
7878
withUtxoHdLmdb = profile.node.utxo_lmdb && isProducer;
79+
withUtxoHdLsmt = profile.node.utxo_lsmt && isProducer;
7980
lmdbDatabasePath = liveTablesPath i;
8081

8182
## Combine:
@@ -122,6 +123,12 @@ let
122123
AlonzoGenesisFile = "../genesis/genesis.alonzo.json";
123124
ConwayGenesisFile = "../genesis/genesis.conway.json";
124125
DijkstraGenesisFile = "../genesis/genesis.dijkstra.json";
126+
} // optionalAttrs (profile.node.utxo_lsmt && isProducer)
127+
{
128+
LedgerDB = {
129+
Backend = "V2LSM";
130+
LSMDatabasePath = liveTablesPath i;
131+
};
125132
} // optionalAttrs (profile.node.utxo_lmdb && isProducer)
126133
{
127134
LedgerDB = {

0 commit comments

Comments
 (0)