Juvix imports
module arch.node.engines.local_time_series_storage_environment;
import prelude open;
import arch.node.engines.local_time_series_storage_messages open;
import arch.node.types.engine open;
import arch.node.types.messages open;
import arch.node.types.identities open;
import arch.node.types.anoma_message as Anoma open;
Local Time Series Storage Environment¶
Overview¶
The Local Time Series Storage Engine maintains a database of time series data with query and update capabilities.
Mailbox state¶
syntax alias LocalTSStorageMailboxState := Unit;
Local state¶
Auxiliary Juvix code
syntax alias Database := String;
axiom updateDB : Database -> TSStorageDBQuery -> TSStorageDBData -> Database;
axiom queryDB : Database -> TSStorageDBQuery -> Option TSStorageDBData;
axiom getNotificationTargets : TSStorageDBQuery -> List EngineID;
axiom advanceTime : EpochTimestamp -> EpochTimestamp;
LocalTSStorageLocalState
¶
type LocalTSStorageLocalState :=
mkLocalTSStorageLocalState@{
db : Database;
localClock : EpochTimestamp;
};
Arguments
db
- The database storing the time series data.
localClock
- The local time of the engine, used to make timestamps.
Timer Handle¶
syntax alias LocalTSStorageTimerHandle := Unit;
LocalTSStorageTimestampedTrigger
¶
LocalTSStorageTimestampedTrigger : Type :=
TimestampedTrigger LocalTSStorageTimerHandle Anoma.Msg;
The Local Time Series Storage Environment¶
LocalTSStorageEnv
¶
LocalTSStorageEnv : Type :=
EngineEnv
LocalTSStorageLocalState
LocalTSStorageMailboxState
LocalTSStorageTimerHandle
Anoma.Msg;
Instantiation¶
localTSStorageEnv : LocalTSStorageEnv :=
mkEngineEnv@{
localState :=
mkLocalTSStorageLocalState@{
db := "";
localClock := 0;
};
mailboxCluster := Map.empty;
acquaintances := Set.empty;
timers := [];
};