Module: Igniter::Store

Defined in:
lib/igniter/store.rb,
lib/igniter/store.rb,
lib/igniter/store/fact.rb,
lib/igniter/store/codecs.rb,
lib/igniter/store/fact_log.rb,
lib/igniter/store/protocol.rb,
lib/igniter/store/read_cache.rb,
lib/igniter/store/access_path.rb,
lib/igniter/store/mcp_adapter.rb,
lib/igniter/store/tcp_adapter.rb,
lib/igniter/store/change_event.rb,
lib/igniter/store/file_backend.rb,
lib/igniter/store/http_adapter.rb,
lib/igniter/store/schema_graph.rb,
lib/igniter/store/store_server.rb,
lib/igniter/store/igniter_store.rb,
lib/igniter/store/server_config.rb,
lib/igniter/store/server_logger.rb,
lib/igniter/store/wire_protocol.rb,
lib/igniter/store/server_metrics.rb,
lib/igniter/store/network_backend.rb,
lib/igniter/store/protocol/receipt.rb,
lib/igniter/store/changefeed_buffer.rb,
lib/igniter/store/protocol/interpreter.rb,
lib/igniter/store/protocol/sync_profile.rb,
lib/igniter/store/subscription_registry.rb,
lib/igniter/store/protocol/wire_envelope.rb,
lib/igniter/store/segmented_file_backend.rb,
lib/igniter/store/contractable_receipt_sink.rb,
lib/igniter/store/tbackend_adapter_descriptor.rb,
lib/igniter/store/protocol/handlers/store_handler.rb,
lib/igniter/store/protocol/handlers/effect_handler.rb,
lib/igniter/store/protocol/handlers/command_handler.rb,
lib/igniter/store/protocol/handlers/history_handler.rb,
lib/igniter/store/protocol/handlers/relation_handler.rb,
lib/igniter/store/protocol/handlers/derivation_handler.rb,
lib/igniter/store/protocol/handlers/projection_handler.rb,
lib/igniter/store/protocol/handlers/access_path_handler.rb,
lib/igniter/store/protocol/handlers/subscription_handler.rb

Defined Under Namespace

Modules: Codecs, NativeFileBackendSnapshotSupport, Protocol, WireProtocol Classes: AccessPath, ChangeEvent, ChangefeedBuffer, CoercedFact, ContractableReceiptSink, DerivationRule, EventRing, Fact, FactLog, FileBackend, HTTPAdapter, IgniterStore, MCPAdapter, NetworkBackend, ProjectionPath, ReadCache, RelationRule, RetentionPolicy, ScatterRule, SchemaGraph, SegmentedFileBackend, ServerConfig, ServerLogger, ServerMetrics, StoreServer, SubscriptionRegistry, TBackendAdapterDescriptor, TCPAdapter

Constant Summary collapse

NATIVE =

overwritten by native.rb when extension loads

false
LedgerStore =
IgniterStore
LedgerServer =
StoreServer
LedgerNetworkBackend =
NetworkBackend

Class Method Summary collapse

Class Method Details

.access_pathObject



55
56
57
# File 'lib/igniter/store.rb', line 55

def access_path(...)
  AccessPath.new(...)
end

.memoryObject



37
38
39
# File 'lib/igniter/store.rb', line 37

def memory
  IgniterStore.new
end

.open(path) ⇒ Object



41
42
43
# File 'lib/igniter/store.rb', line 41

def open(path)
  IgniterStore.open(path)
end

.segmented(root_dir, **opts) ⇒ Object

Open (or create) a segmented WAL store at root_dir. Facts from all stores are partitioned into per-store, per-time-bucket segment files under root_dir/wal/.



48
49
50
51
52
53
# File 'lib/igniter/store.rb', line 48

def segmented(root_dir, **opts)
  backend = SegmentedFileBackend.new(root_dir, **opts)
  store   = IgniterStore.new(backend: backend)
  backend.replay.each { |fact| store.__send__(:replay, fact) }
  store
end