3个不稳定版本
新 0.11.0 | 2024年8月6日 |
---|---|
0.10.1 | 2024年6月28日 |
0.10.0 | 2024年6月13日 |
#6 in #capturing
在 4 个crate中使用(通过 spacetimedb-core)
32KB
455 行
本crate实现了在SpacetimeDB中捕获和恢复快照。
快照是特定事务偏移量处数据库提交状态的磁盘视图。快照作为重放提交日志的优化存在;在恢复到最新事务时,而不是从0重放提交日志,我们可以重新加载最新的快照,然后只重放提交日志的尾部。
本crate负责
- 快照的磁盘格式。
SnapshotRepository
,其中包含多个DB的快照,并可以创建和检索它们。- 在
SnapshotRepository::create_snapshot
中给定DB提交状态的视图创建一个快照。 - 在
SnapshotRepository::read_snapshot
中将磁盘上的快照读入内存作为ReconstructedSnapshot
。然后可以将ReconstructedSnapshot
安装到数据存储中。 - 在
SnapshotRepository::latest_snapshot
和SnapshotRepository::latest_snapshot_older_than
中定位DB的最新快照或给定tx偏移量不晚于的最新快照。
本crate 不 负责
- 确定何时捕获快照。
- 在重启后决定从哪个快照恢复。
- 在恢复快照后重放提交日志的尾部。
- 将
ReconstructedSnapshot
转换为实时时空数据存储。
依赖项
约10-17MB
约211K SLoC