lsm-tree-0.1.0.0: Log-structured merge-trees
Safe HaskellSafe-Inferred
LanguageGHC2021

Database.LSMTree.Extras.MergingTreeData

Description

Utilities for generating MergingTrees. Tests and benchmarks should preferably use these utilities instead of (re-)defining their own.

Synopsis

Create merging trees

unsafeCreateMergingTree :: HasFS IO h -> HasBlockIO IO h -> ResolveSerialisedValue -> RunParams -> FsPath -> UniqCounter IO -> SerialisedMergingTreeData -> IO (Ref (MergingTree IO h)) Source #

Flush serialised merging tree data to disk.

This might leak resources if not run with asynchronous exceptions masked. Consider using withMergingTree instead.

Use of this function should be paired with a releaseRef.

MergingTreeData

data MergingTreeData k v b Source #

A data structure suitable for creating arbitrary MergingTrees.

Note: 'b ~ Void' should rule out blobs.

Instances

Instances details
(Ord k, Arbitrary k, Arbitrary v, Arbitrary b) => Arbitrary (MergingTreeData k v b) Source # 
Instance details

Defined in Database.LSMTree.Extras.MergingTreeData

(Show k, Show b, Show v) => Show (MergingTreeData k v b) Source # 
Instance details

Defined in Database.LSMTree.Extras.MergingTreeData

(Eq k, Eq b, Eq v) => Eq (MergingTreeData k v b) Source # 
Instance details

Defined in Database.LSMTree.Extras.MergingTreeData

Methods

(==) :: MergingTreeData k v b -> MergingTreeData k v b -> Bool #

(/=) :: MergingTreeData k v b -> MergingTreeData k v b -> Bool #

data PreExistingRunData k v b Source #

Instances

Instances details
(Show k, Show b, Show v) => Show (PreExistingRunData k v b) Source # 
Instance details

Defined in Database.LSMTree.Extras.MergingTreeData

(Eq k, Eq b, Eq v) => Eq (PreExistingRunData k v b) Source # 
Instance details

Defined in Database.LSMTree.Extras.MergingTreeData

mergingTreeDataInvariant :: MergingTreeData k v b -> Either String () Source #

See treeInvariant in prototype.

mapMergingTreeData :: Ord k' => (k -> k') -> (v -> v') -> (b -> b') -> MergingTreeData k v b -> MergingTreeData k' v' b' Source #

QuickCheck

genMergingTreeData :: Ord k => Gen k -> Gen v -> Gen b -> Gen (MergingTreeData k v b) Source #

shrinkMergingTreeData :: Ord k => (k -> [k]) -> (v -> [v]) -> (b -> [b]) -> MergingTreeData k v b -> [MergingTreeData k v b] Source #