Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module implements data structures and function related to the metadata of the concurrent page allocator.
- data CurrentMetaPage
- data ConcurrentMeta k v = ConcurrentMeta {
- concurrentMetaRevision :: TxId
- concurrentMetaDataNumPages :: S TypeData PageId
- concurrentMetaIndexNumPages :: S TypeIndex PageId
- concurrentMetaTree :: Tree k v
- concurrentMetaDataFreeTree :: S TypeData FreeTree
- concurrentMetaIndexFreeTree :: S TypeIndex FreeTree
- concurrentMetaOverflowTree :: OverflowTree
- concurrentMetaDataFreshUnusedPages :: S TypeData (Set DirtyFree)
- concurrentMetaIndexFreshUnusedPages :: S TypeIndex (Set DirtyFree)
- class StoreM FilePath m => ConcurrentMetaStoreM m where
Documentation
data CurrentMetaPage Source #
Data type used to point to the most recent version of the meta data.
data ConcurrentMeta k v Source #
Meta data of the page allocator.
(Show k, Show v) => Show (ConcurrentMeta k v) Source # | |
Generic (ConcurrentMeta k v) Source # | |
(Binary k, Binary v) => Binary (ConcurrentMeta k v) Source # | |
type Rep (ConcurrentMeta k v) Source # | |
class StoreM FilePath m => ConcurrentMetaStoreM m where Source #
A class representing the storage requirements of the page allocator.
A store supporting the page allocator should be an instance of this class.
putConcurrentMeta :: (Key k, Value v) => FilePath -> ConcurrentMeta k v -> m () Source #
Write the meta-data structure to a certain page.
readConcurrentMeta :: (Key k, Value v) => FilePath -> Proxy k -> Proxy v -> m (Maybe (ConcurrentMeta k v)) Source #
Try to read the meta-data structure from a handle, or return Nothing
if the handle doesn't contain a meta page.
(Applicative m, Monad m, MonadIO m, MonadThrow m) => ConcurrentMetaStoreM (FileStoreT FilePath m) Source # | |
(Applicative m, Monad m, MonadIO m, MonadThrow m) => ConcurrentMetaStoreM (MemoryStoreT FilePath m) Source # | |