Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data EntryIssuer
- data EntryValue v
- = EntryValue v
- | NoValue
- data Entry v = Entry {
- entryIndex :: Index
- entryTerm :: Term
- entryValue :: EntryValue v
- entryIssuer :: EntryIssuer
- type Entries v = Seq (Entry v)
- class Monad m => RaftWriteLog m v where
- type RaftWriteLogError m
- writeLogEntries :: Exception (RaftWriteLogError m) => Entries v -> m (Either (RaftWriteLogError m) ())
- data DeleteSuccess v = DeleteSuccess
- class Monad m => RaftDeleteLog m v where
- type RaftDeleteLogError m
- deleteLogEntriesFrom :: Exception (RaftDeleteLogError m) => Index -> m (Either (RaftDeleteLogError m) (DeleteSuccess v))
- class Monad m => RaftReadLog m v where
- type RaftReadLogError m
- readLogEntry :: Exception (RaftReadLogError m) => Index -> m (Either (RaftReadLogError m) (Maybe (Entry v)))
- readLogEntriesFrom :: Exception (RaftReadLogError m) => Index -> m (Either (RaftReadLogError m) (Entries v))
- readLastLogEntry :: Exception (RaftReadLogError m) => m (Either (RaftReadLogError m) (Maybe (Entry v)))
- type RaftLog m v = (RaftReadLog m v, RaftWriteLog m v, RaftDeleteLog m v)
- type RaftLogExceptions m = (Exception (RaftReadLogError m), Exception (RaftWriteLogError m), Exception (RaftDeleteLogError m))
- data RaftLogError m
- updateLog :: forall m v. (RaftDeleteLog m v, Exception (RaftDeleteLogError m), RaftWriteLog m v, Exception (RaftWriteLogError m)) => Entries v -> m (Either (RaftLogError m) ())
Documentation
data EntryIssuer Source #
Instances
Show EntryIssuer Source # | |
Defined in Raft.Log showsPrec :: Int -> EntryIssuer -> ShowS # show :: EntryIssuer -> String # showList :: [EntryIssuer] -> ShowS # | |
Generic EntryIssuer Source # | |
Defined in Raft.Log type Rep EntryIssuer :: Type -> Type # from :: EntryIssuer -> Rep EntryIssuer x # to :: Rep EntryIssuer x -> EntryIssuer # | |
Serialize EntryIssuer Source # | |
Defined in Raft.Log put :: Putter EntryIssuer # get :: Get EntryIssuer # | |
type Rep EntryIssuer Source # | |
Defined in Raft.Log type Rep EntryIssuer = D1 (MetaData "EntryIssuer" "Raft.Log" "libraft-0.1.1.0-8nwazCMBvi7EUIW9UIbZhF" False) (C1 (MetaCons "ClientIssuer" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ClientId)) :+: C1 (MetaCons "LeaderIssuer" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 LeaderId))) |
data EntryValue v Source #
EntryValue v | |
NoValue | Used as a first committed entry of a new term |
Instances
Show v => Show (EntryValue v) Source # | |
Defined in Raft.Log showsPrec :: Int -> EntryValue v -> ShowS # show :: EntryValue v -> String # showList :: [EntryValue v] -> ShowS # | |
Generic (EntryValue v) Source # | |
Defined in Raft.Log type Rep (EntryValue v) :: Type -> Type # from :: EntryValue v -> Rep (EntryValue v) x # to :: Rep (EntryValue v) x -> EntryValue v # | |
Serialize v => Serialize (EntryValue v) Source # | |
Defined in Raft.Log put :: Putter (EntryValue v) # get :: Get (EntryValue v) # | |
type Rep (EntryValue v) Source # | |
Defined in Raft.Log type Rep (EntryValue v) = D1 (MetaData "EntryValue" "Raft.Log" "libraft-0.1.1.0-8nwazCMBvi7EUIW9UIbZhF" False) (C1 (MetaCons "EntryValue" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 v)) :+: C1 (MetaCons "NoValue" PrefixI False) (U1 :: Type -> Type)) |
Representation of an entry in the replicated log
Entry | |
|
Instances
Show v => Show (Entry v) Source # | |
Generic (Entry v) Source # | |
Serialize v => Serialize (Entry v) Source # | |
type Rep (Entry v) Source # | |
Defined in Raft.Log type Rep (Entry v) = D1 (MetaData "Entry" "Raft.Log" "libraft-0.1.1.0-8nwazCMBvi7EUIW9UIbZhF" False) (C1 (MetaCons "Entry" PrefixI True) ((S1 (MetaSel (Just "entryIndex") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Index) :*: S1 (MetaSel (Just "entryTerm") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Term)) :*: (S1 (MetaSel (Just "entryValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (EntryValue v)) :*: S1 (MetaSel (Just "entryIssuer") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 EntryIssuer)))) |
class Monad m => RaftWriteLog m v where Source #
Provides an interface for nodes to write log entries to storage.
type RaftWriteLogError m Source #
writeLogEntries :: Exception (RaftWriteLogError m) => Entries v -> m (Either (RaftWriteLogError m) ()) Source #
Write the given log entries to storage
Instances
(MonadIO m, MonadConc m, Serialize v) => RaftWriteLog (RaftFileStoreT m) v Source # | |
Defined in Examples.Raft.FileStore type RaftWriteLogError (RaftFileStoreT m) :: Type Source # writeLogEntries :: Entries v -> RaftFileStoreT m (Either (RaftWriteLogError (RaftFileStoreT m)) ()) Source # |
data DeleteSuccess v Source #
class Monad m => RaftDeleteLog m v where Source #
Provides an interface for nodes to delete log entries from storage.
type RaftDeleteLogError m Source #
deleteLogEntriesFrom :: Exception (RaftDeleteLogError m) => Index -> m (Either (RaftDeleteLogError m) (DeleteSuccess v)) Source #
Delete log entries from a given index; e.g. 'deleteLogEntriesFrom 7' should delete every log entry with an index >= 7.
Instances
(MonadIO m, MonadConc m, Serialize v) => RaftDeleteLog (RaftFileStoreT m) v Source # | |
Defined in Examples.Raft.FileStore type RaftDeleteLogError (RaftFileStoreT m) :: Type Source # deleteLogEntriesFrom :: Index -> RaftFileStoreT m (Either (RaftDeleteLogError (RaftFileStoreT m)) (DeleteSuccess v)) Source # |
class Monad m => RaftReadLog m v where Source #
Provides an interface for nodes to read log entries from storage.
type RaftReadLogError m Source #
readLogEntry :: Exception (RaftReadLogError m) => Index -> m (Either (RaftReadLogError m) (Maybe (Entry v))) Source #
Read the log at a given index
readLogEntriesFrom :: Exception (RaftReadLogError m) => Index -> m (Either (RaftReadLogError m) (Entries v)) Source #
Read log entries from a specific index onwards, including the specific index
readLastLogEntry :: Exception (RaftReadLogError m) => m (Either (RaftReadLogError m) (Maybe (Entry v))) Source #
Read the last log entry in the log
readLogEntriesFrom :: Exception (RaftReadLogError m) => Index -> m (Either (RaftReadLogError m) (Entries v)) Source #
Read log entries from a specific index onwards, including the specific index
Instances
(MonadIO m, MonadConc m, Serialize v) => RaftReadLog (RaftFileStoreT m) v Source # | |
Defined in Examples.Raft.FileStore type RaftReadLogError (RaftFileStoreT m) :: Type Source # readLogEntry :: Index -> RaftFileStoreT m (Either (RaftReadLogError (RaftFileStoreT m)) (Maybe (Entry v))) Source # readLogEntriesFrom :: Index -> RaftFileStoreT m (Either (RaftReadLogError (RaftFileStoreT m)) (Entries v)) Source # readLastLogEntry :: RaftFileStoreT m (Either (RaftReadLogError (RaftFileStoreT m)) (Maybe (Entry v))) Source # |
type RaftLog m v = (RaftReadLog m v, RaftWriteLog m v, RaftDeleteLog m v) Source #
type RaftLogExceptions m = (Exception (RaftReadLogError m), Exception (RaftWriteLogError m), Exception (RaftDeleteLogError m)) Source #
data RaftLogError m Source #
Representation of possible errors that come from reading, writing or deleting logs from the persistent storage
updateLog :: forall m v. (RaftDeleteLog m v, Exception (RaftDeleteLogError m), RaftWriteLog m v, Exception (RaftWriteLogError m)) => Entries v -> m (Either (RaftLogError m) ()) Source #