Skip to content

Commit db94b16

Browse files
committed
Some more cleanup
1 parent 65acc36 commit db94b16

File tree

7 files changed

+43
-61
lines changed

7 files changed

+43
-61
lines changed

ouroboros-consensus-diffusion/ouroboros-consensus-diffusion.cabal

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ library
8484
deepseq,
8585
filepath,
8686
blockio,
87-
lsm-tree,
8887
fs-api ^>=0.4,
8988
hashable,
9089
io-classes:{io-classes, si-timers, strict-stm} ^>=1.8,

ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Node.hs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ module Ouroboros.Consensus.Node
5353
, pattern DoDiskSnapshotChecksum
5454
, pattern NoDoDiskSnapshotChecksum
5555
, ChainSyncIdleTimeout (..)
56+
, LedgerDbBackendArgs (..)
5657

5758
-- * Internal helpers
5859
, mkNodeKernelArgs
@@ -126,9 +127,9 @@ import qualified Ouroboros.Consensus.Storage.ChainDB as ChainDB
126127
import qualified Ouroboros.Consensus.Storage.ChainDB.Impl.Args as ChainDB
127128
import Ouroboros.Consensus.Storage.LedgerDB.Args
128129
import Ouroboros.Consensus.Storage.LedgerDB.Snapshots
130+
import qualified Ouroboros.Consensus.Storage.LedgerDB.V2.Args as V2
129131
import Ouroboros.Consensus.Util.Args
130132
import Ouroboros.Consensus.Util.IOLike
131-
import System.FS.BlockIO.IO
132133
import Ouroboros.Consensus.Util.Orphans ()
133134
import Ouroboros.Consensus.Util.Time (secondsToNominalDiffTime)
134135
import Ouroboros.Network.BlockFetch
@@ -176,10 +177,10 @@ import qualified SafeWildCards
176177
import System.Exit (ExitCode (..))
177178
import System.FS.API (SomeHasFS (..))
178179
import System.FS.API.Types (MountPoint (..))
180+
import System.FS.BlockIO.IO
179181
import System.FS.IO (ioHasFS)
180182
import System.FilePath ((</>))
181-
import System.Random (StdGen, newStdGen, randomIO, split, genWord64, initStdGen)
182-
import qualified Database.LSMTree as LSM
183+
import System.Random (StdGen, genWord64, initStdGen, newStdGen, randomIO, split)
183184

184185
{-------------------------------------------------------------------------------
185186
The arguments to the Consensus Layer node functionality
@@ -269,8 +270,6 @@ data LowLevelRunNodeArgs m addrNTN addrNTC blk
269270
, llrnMkVolatileHasFS :: ChainDB.RelativeMountPoint -> SomeHasFS m
270271
-- ^ File-system on which the directories for databases other than the ImmutableDB will
271272
-- be created.
272-
, llrnMkLSMFS :: FilePath -> m (SomeHasFSAndBlockIO m)
273-
, llrnGenSalt :: m LSM.Salt
274273
, llrnCustomiseChainDbArgs ::
275274
Complete ChainDbArgs m blk ->
276275
Complete ChainDbArgs m blk
@@ -379,7 +378,7 @@ data
379378
, -- Ad hoc values to replace default ChainDB configurations
380379
srnSnapshotPolicyArgs :: SnapshotPolicyArgs
381380
, srnQueryBatchSize :: QueryBatchSize
382-
, srnLdbFlavorArgs :: Complete LedgerDbFlavorArgs m
381+
, srnLdbFlavorArgs :: LedgerDbBackendArgs m
383382
}
384383

385384
{-------------------------------------------------------------------------------
@@ -527,8 +526,6 @@ runWith RunNodeArgs{..} encAddrNtN decAddrNtN LowLevelRunNodeArgs{..} =
527526
initLedger
528527
llrnMkImmutableHasFS
529528
llrnMkVolatileHasFS
530-
llrnMkLSMFS
531-
llrnGenSalt
532529
llrnLdbFlavorArgs
533530
llrnChainDbArgsDefaults
534531
( setLoEinChainDbArgs
@@ -822,15 +819,13 @@ openChainDB ::
822819
(ChainDB.RelativeMountPoint -> SomeHasFS m) ->
823820
-- | Volatile FS, see 'NodeDatabasePaths'
824821
(ChainDB.RelativeMountPoint -> SomeHasFS m) ->
825-
(FilePath -> m (SomeHasFSAndBlockIO m)) ->
826-
(m LSM.Salt) ->
827822
Complete LedgerDbFlavorArgs m ->
828823
-- | A set of default arguments (possibly modified from 'defaultArgs')
829824
Incomplete ChainDbArgs m blk ->
830825
-- | Customise the 'ChainDbArgs'
831826
(Complete ChainDbArgs m blk -> Complete ChainDbArgs m blk) ->
832827
m (ChainDB m blk, Complete ChainDbArgs m blk)
833-
openChainDB registry cfg initLedger fsImm fsVol fsLSM genSalt flavorArgs defArgs customiseArgs =
828+
openChainDB registry cfg initLedger fsImm fsVol flavorArgs defArgs customiseArgs =
834829
let args =
835830
customiseArgs $
836831
ChainDB.completeChainDbArgs
@@ -841,8 +836,6 @@ openChainDB registry cfg initLedger fsImm fsVol fsLSM genSalt flavorArgs defArgs
841836
(nodeCheckIntegrity (configStorage cfg))
842837
fsImm
843838
fsVol
844-
fsLSM
845-
genSalt
846839
flavorArgs
847840
defArgs
848841
in (,args) <$> ChainDB.openDB args
@@ -1024,9 +1017,6 @@ stdLowLevelRunNodeArgsIO
10241017
, llrnRng
10251018
, llrnMkImmutableHasFS = stdMkChainDbHasFS $ immutableDbPath srnDatabasePath
10261019
, llrnMkVolatileHasFS = stdMkChainDbHasFS $ nonImmutableDbPath srnDatabasePath
1027-
, llrnMkLSMFS = \s ->
1028-
uncurry SomeHasFSAndBlockIO <$> ioHasBlockIO (MountPoint $ nonImmutableDbPath srnDatabasePath </> s) defaultIOCtxParams
1029-
, llrnGenSalt = fst . genWord64 <$> initStdGen
10301020
, llrnChainDbArgsDefaults = updateChainDbDefaults ChainDB.defaultArgs
10311021
, llrnCustomiseChainDbArgs = id
10321022
, llrnCustomiseNodeKernelArgs
@@ -1063,7 +1053,17 @@ stdLowLevelRunNodeArgsIO
10631053
, llrnPublicPeerSelectionStateVar =
10641054
Diffusion.dcPublicPeerSelectionVar srnDiffusionConfiguration
10651055
, llrnLdbFlavorArgs =
1066-
srnLdbFlavorArgs
1056+
case srnLdbFlavorArgs of
1057+
V1LMDB args -> LedgerDbFlavorArgsV1 args
1058+
V2InMemory -> LedgerDbFlavorArgsV2 (V2.V2Args V2.InMemoryHandleArgs)
1059+
V2LSM path ->
1060+
let
1061+
mkFS = \s ->
1062+
uncurry V2.SomeHasFSAndBlockIO
1063+
<$> ioHasBlockIO (MountPoint $ nonImmutableDbPath srnDatabasePath </> s) defaultIOCtxParams
1064+
genSalt = fst . genWord64 <$> initStdGen
1065+
in
1066+
LedgerDbFlavorArgsV2 (V2.V2Args (V2.LSMHandleArgs (V2.LSMArgs path genSalt mkFS)))
10671067
}
10681068
where
10691069
networkMagic :: NetworkMagic

ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Storage/ChainDB/Impl/Args.hs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ import qualified Ouroboros.Consensus.Storage.VolatileDB as VolatileDB
4545
import Ouroboros.Consensus.Util.Args
4646
import Ouroboros.Consensus.Util.IOLike
4747
import System.FS.API
48-
import qualified Database.LSMTree as LSM
4948

5049
{-------------------------------------------------------------------------------
5150
Arguments
@@ -170,10 +169,6 @@ completeChainDbArgs ::
170169
(RelativeMountPoint -> SomeHasFS m) ->
171170
-- | Volatile FS, see 'NodeDatabasePaths'
172171
(RelativeMountPoint -> SomeHasFS m) ->
173-
-- | Make LSM fs
174-
(FilePath -> m (LedgerDB.SomeHasFSAndBlockIO m)) ->
175-
-- | Make LSM Salt
176-
(m LSM.Salt) ->
177172
Complete LedgerDbFlavorArgs m ->
178173
-- | A set of incomplete arguments, possibly modified wrt @defaultArgs@
179174
Incomplete ChainDbArgs m blk ->
@@ -186,8 +181,6 @@ completeChainDbArgs
186181
checkIntegrity
187182
mkImmFS
188183
mkVolFS
189-
mkLSMFS
190-
genSalt
191184
flavorArgs
192185
defArgs =
193186
defArgs
@@ -215,8 +208,6 @@ completeChainDbArgs
215208
(LedgerDB.ledgerDbCfgComputeLedgerEvents $ LedgerDB.lgrConfig (cdbLgrDbArgs defArgs))
216209
, LedgerDB.lgrFlavorArgs = flavorArgs
217210
, LedgerDB.lgrRegistry = registry
218-
, LedgerDB.lgrGenSalt = genSalt
219-
, LedgerDB.lgrMkLSMFS = mkLSMFS
220211
}
221212
, cdbsArgs =
222213
(cdbsArgs defArgs)

ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Storage/LedgerDB.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,14 @@ openDB
7777
LedgerDbFlavorArgsV2 bss -> do
7878
(ds, bss') <- case bss of
7979
V2.V2Args V2.InMemoryHandleArgs -> pure (defaultDeleteSnapshot, V2.InMemoryHandleEnv)
80-
V2.V2Args (V2.LSMHandleArgs path) -> do
80+
V2.V2Args (V2.LSMHandleArgs (V2.LSMArgs path genSalt mkFS)) -> do
8181
session <-
8282
snd
8383
<$> allocate
8484
(lgrRegistry args)
8585
( \_ -> do
86-
SomeHasFSAndBlockIO fs blockio <- lgrMkLSMFS args "lsm"
87-
salt <- lgrGenSalt args
86+
V2.SomeHasFSAndBlockIO fs blockio <- mkFS "lsm"
87+
salt <- genSalt
8888
LSM.openSession
8989
(LedgerDBFlavorImplEvent . FlavorImplSpecificTraceV2 . V2.LSMTrace >$< lgrTracer args)
9090
fs

ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Storage/LedgerDB/Args.hs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
-- | Arguments for LedgerDB initialization.
1919
module Ouroboros.Consensus.Storage.LedgerDB.Args
2020
( LedgerDbArgs (..)
21+
, LedgerDbBackendArgs (..)
2122
, LedgerDbFlavorArgs (..)
2223
, QueryBatchSize (..)
2324
, defaultArgs
2425
, defaultQueryBatchSize
25-
, SomeHasFSAndBlockIO (..)
2626
) where
2727

2828
import Control.ResourceRegistry
@@ -40,9 +40,8 @@ import qualified Ouroboros.Consensus.Storage.LedgerDB.V1.Args as V1
4040
import qualified Ouroboros.Consensus.Storage.LedgerDB.V2.Args as V2
4141
import Ouroboros.Consensus.Util.Args
4242
import System.FS.API
43-
import qualified Database.LSMTree as LSM
44-
import System.FS.BlockIO.API
45-
import Data.Typeable
43+
44+
data LedgerDbBackendArgs m = V1LMDB (Complete V1.LedgerDbFlavorArgs m) | V2InMemory | V2LSM FilePath
4645

4746
{-------------------------------------------------------------------------------
4847
Arguments
@@ -67,13 +66,8 @@ data LedgerDbArgs f m blk = LedgerDbArgs
6766
-- ^ If provided, the ledgerdb will start using said snapshot and fallback
6867
-- to genesis. It will ignore any other existing snapshots. Useful for
6968
-- db-analyser.
70-
, lgrGenSalt :: HKD f (m LSM.Salt)
71-
, lgrMkLSMFS :: HKD f (FilePath -> m (SomeHasFSAndBlockIO m))
7269
}
7370

74-
data SomeHasFSAndBlockIO m where
75-
SomeHasFSAndBlockIO :: (Eq h, Typeable h) => HasFS m h -> HasBlockIO m h -> SomeHasFSAndBlockIO m
76-
7771
-- | Default arguments
7872
defaultArgs ::
7973
Applicative m =>
@@ -91,13 +85,11 @@ defaultArgs =
9185
lgrFlavorArgs = LedgerDbFlavorArgsV2 (V2.V2Args V2.InMemoryHandleArgs)
9286
, lgrRegistry = NoDefault
9387
, lgrStartSnapshot = Nothing
94-
, lgrGenSalt = NoDefault
95-
, lgrMkLSMFS = NoDefault
9688
}
9789

9890
data LedgerDbFlavorArgs f m
9991
= LedgerDbFlavorArgsV1 (V1.LedgerDbFlavorArgs f m)
100-
| LedgerDbFlavorArgsV2 (V2.LedgerDbFlavorArgs f)
92+
| LedgerDbFlavorArgsV2 (V2.LedgerDbFlavorArgs f m)
10193

10294
{-------------------------------------------------------------------------------
10395
QueryBatchSize

ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Storage/LedgerDB/V1/Args.hs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ module Ouroboros.Consensus.Storage.LedgerDB.V1.Args
1313
( BackingStoreArgs (..)
1414
, FlushFrequency (..)
1515
, LedgerDbFlavorArgs (..)
16-
, defaultLedgerDbFlavorArgs
1716
, shouldFlush
1817
) where
1918

@@ -55,9 +54,3 @@ data BackingStoreArgs f m
5554

5655
class (MonadIO m, PrimState m ~ PrimState IO) => MonadIOPrim m
5756
instance (MonadIO m, PrimState m ~ PrimState IO) => MonadIOPrim m
58-
59-
defaultLedgerDbFlavorArgs :: Incomplete LedgerDbFlavorArgs m
60-
defaultLedgerDbFlavorArgs = V1Args DefaultFlushFrequency defaultBackingStoreArgs
61-
62-
defaultBackingStoreArgs :: Incomplete BackingStoreArgs m
63-
defaultBackingStoreArgs = InMemoryBackingStoreArgs

ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Storage/LedgerDB/V2/Args.hs

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,35 @@
1-
{-# LANGUAGE DataKinds #-}
2-
{-# LANGUAGE DeriveAnyClass #-}
3-
{-# LANGUAGE DeriveGeneric #-}
4-
{-# LANGUAGE FlexibleInstances #-}
51
{-# LANGUAGE GADTs #-}
6-
{-# LANGUAGE MultiParamTypeClasses #-}
72
{-# LANGUAGE PolyKinds #-}
8-
{-# LANGUAGE StandaloneDeriving #-}
9-
{-# LANGUAGE TypeFamilies #-}
10-
{-# OPTIONS_GHC -Wno-orphans #-}
113

124
module Ouroboros.Consensus.Storage.LedgerDB.V2.Args
135
( FlavorImplSpecificTrace (..)
146
, HandleArgs (..)
157
, HandleEnv (..)
168
, LedgerDbFlavorArgs (..)
9+
, SomeHasFSAndBlockIO (..)
10+
, LSMHandleArgs (..)
1711
) where
1812

19-
import Database.LSMTree (LSMTreeTrace (..), Session)
13+
import Data.Typeable
14+
import Database.LSMTree (LSMTreeTrace (..), Salt, Session)
15+
import Ouroboros.Consensus.Util.Args
16+
import System.FS.API
17+
import System.FS.BlockIO.API
2018

21-
data LedgerDbFlavorArgs f = V2Args HandleArgs
19+
data LedgerDbFlavorArgs f m = V2Args (HandleArgs f m)
2220

23-
data HandleArgs
21+
data HandleArgs f m
2422
= InMemoryHandleArgs
25-
| LSMHandleArgs FilePath
23+
| LSMHandleArgs (LSMHandleArgs f m)
24+
25+
data LSMHandleArgs f m = LSMArgs
26+
{ lsmFilePath :: HKD f FilePath
27+
, lsmGenSalt :: HKD f (m Salt)
28+
, lsmMkFS :: HKD f (FilePath -> m (SomeHasFSAndBlockIO m))
29+
}
30+
31+
data SomeHasFSAndBlockIO m where
32+
SomeHasFSAndBlockIO :: (Eq h, Typeable h) => HasFS m h -> HasBlockIO m h -> SomeHasFSAndBlockIO m
2633

2734
data HandleEnv m
2835
= InMemoryHandleEnv

0 commit comments

Comments
 (0)