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