8#include <unordered_set>
26 const std::filesystem::path & hot_db_path,
27 const std::filesystem::path & archive_root,
28 const std::int64_t outbox_retention_ms,
29 const int default_chain_id,
30 std::string default_chain_namespace =
"eth");
39 bool saveNextLocalSeq(
const int chain_id,
const std::uint64_t next_seq,
const std::int64_t now_ms);
43 const std::int64_t from_block,
44 const std::int64_t to_block)
const;
48 const std::vector<RawChainLog> & raw_events,
49 const std::vector<DecodedEvent> & decoded_events,
50 const std::vector<ChainBlockInfo> & block_infos,
51 const std::int64_t next_from_block,
52 const std::int64_t now_ms,
53 const std::optional<std::uint64_t> next_local_seq = std::nullopt)
override;
57 const std::vector<DecodedEvent> & events,
58 const std::vector<ChainBlockInfo> & block_infos,
59 const std::int64_t next_from_block,
60 const std::int64_t now_ms);
65 const std::int64_t now_ms,
66 const std::size_t reorg_window_blocks)
override;
68 std::size_t
projectBatch(
const std::size_t limit,
const std::int64_t now_ms)
override;
72 const std::size_t hot_window_days,
73 const std::int64_t now_ms)
override;
75 bool runCycle(
const int chain_id,
const std::size_t hot_window_days,
const std::int64_t now_ms)
override;
87 bool _initializeHotSchema();
88 bool _initializeArchiveSchema(sqlite3 * archive_db)
const;
90 bool _exportMonth(
const int chain_id,
const std::string& month_token,
const std::int64_t now_ms);
92 std::vector<std::filesystem::path> _candidateArchivePaths(
const std::optional<CursorKey> & before_key)
const;
94 void _appendFeedRowsFromDatabase(
96 const char * table_name,
98 const std::optional<CursorKey> & before_key,
99 const std::size_t limit,
100 std::vector<FeedItem> & out_items,
101 std::unordered_set<std::string> & seen_feed_ids)
const;
104 std::filesystem::path _hot_db_path;
105 std::filesystem::path _archive_root;
106 std::int64_t _outbox_retention_ms = 0;
108 sqlite3 * _write_db =
nullptr;
109 sqlite3 * _read_db =
nullptr;
110 std::unique_ptr<IEventShardRouter> _shard_router;
112 int _default_chain_id = 1;
113 std::string _default_chain_namespace =
"eth";
Definition events_archive.hpp:9
Definition events_store.hpp:41
Definition sqlite_hot_store.hpp:23
std::optional< std::int64_t > loadNextFromBlock(const int chain_id) override
Definition sqlite_hot_store.cpp:451
std::vector< std::int64_t > loadReorgWindowBlocks(const int chain_id, const std::int64_t from_block, const std::int64_t to_block) const
Definition sqlite_hot_store.cpp:496
std::optional< std::uint64_t > loadNextLocalSeq(const int chain_id)
Definition sqlite_hot_store.cpp:464
FeedPage getFeedPage(const FeedQuery &query) const
Definition sqlite_hot_store.cpp:1993
bool runCycle(const int chain_id, const std::size_t hot_window_days, const std::int64_t now_ms) override
Definition sqlite_hot_store.cpp:1988
bool applyFinality(const int chain_id, const FinalityHeights &heights, const std::int64_t now_ms, const std::size_t reorg_window_blocks) override
Definition sqlite_hot_store.cpp:1164
StreamPage getStreamPage(const StreamQuery &query) const
Definition sqlite_hot_store.cpp:2087
std::int64_t minAvailableStreamSeq() const
Definition sqlite_hot_store.cpp:2188
storage::sqlite::WalCheckpointStats checkpointWal(storage::sqlite::WalCheckpointMode mode)
Definition sqlite_hot_store.cpp:398
~SQLiteHotStore() override
Definition sqlite_hot_store.cpp:384
std::size_t projectBatch(const std::size_t limit, const std::int64_t now_ms) override
Definition sqlite_hot_store.cpp:1348
bool runArchiveCycle(const int chain_id, const std::size_t hot_window_days, const std::int64_t now_ms) override
Definition sqlite_hot_store.cpp:1783
bool saveNextLocalSeq(const int chain_id, const std::uint64_t next_seq, const std::int64_t now_ms)
Definition sqlite_hot_store.cpp:477
bool ingestBatch(const int chain_id, const std::vector< RawChainLog > &raw_events, const std::vector< DecodedEvent > &decoded_events, const std::vector< ChainBlockInfo > &block_infos, const std::int64_t next_from_block, const std::int64_t now_ms, const std::optional< std::uint64_t > next_local_seq=std::nullopt) override
Definition sqlite_hot_store.cpp:552
Definition decoded_event.hpp:11
WalCheckpointMode
Definition wal.hpp:9
Definition events_feed.hpp:57
Definition events_feed.hpp:49
Definition events_ingest.hpp:12
Definition events_feed.hpp:81
Definition events_feed.hpp:64