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

Database.LSMTree.Internal.BlobRef

Synopsis

Documentation

data BlobSpan Source #

The location of a blob inside a blob file.

Constructors

BlobSpan 

Instances

Instances details
Show BlobSpan Source # 
Instance details

Defined in Database.LSMTree.Internal.BlobFile

NFData BlobSpan Source # 
Instance details

Defined in Database.LSMTree.Internal.BlobFile

Methods

rnf :: BlobSpan -> () #

Eq BlobSpan Source # 
Instance details

Defined in Database.LSMTree.Internal.BlobFile

data RawBlobRef m h Source #

A raw blob reference is a reference to a blob within a blob file.

The "raw" means that it does not maintain ownership of the BlobFile to keep it open. Thus these are only safe to use in the context of code that already (directly or indirectly) owns the blob file that the blob ref uses (such as within run merging).

Thus these cannot be handed out via the API. Use WeakBlobRef for that.

Constructors

RawBlobRef 

Instances

Instances details
Show (RawBlobRef m h) Source # 
Instance details

Defined in Database.LSMTree.Internal.BlobRef

Methods

showsPrec :: Int -> RawBlobRef m h -> ShowS #

show :: RawBlobRef m h -> String #

showList :: [RawBlobRef m h] -> ShowS #

data WeakBlobRef m h Source #

A "weak" reference to a blob within a blob file. These are the ones we can return in the public API and can outlive their parent table.

They are weak references in that they do not keep the file open using a reference. So when we want to use our weak reference we have to dereference them to obtain a normal strong reference while we do the I/O to read the blob. This ensures the file is not closed under our feet.

See BlobRef for more info.

Constructors

WeakBlobRef 

Instances

Instances details
Show (WeakBlobRef m h) Source # 
Instance details

Defined in Database.LSMTree.Internal.BlobRef

Methods

showsPrec :: Int -> WeakBlobRef m h -> ShowS #

show :: WeakBlobRef m h -> String #

showList :: [WeakBlobRef m h] -> ShowS #