storage-sync
10
总安装量
9
周安装量
#28893
全站排名
安装命令
npx skills add https://github.com/d-o-hub/rust-self-learning-memory --skill storage-sync
Agent 安装分布
opencode
9
claude-code
9
github-copilot
9
codex
9
kimi-cli
9
gemini-cli
9
Skill 文档
Storage Sync
Synchronize memories between Turso (durable) and redb (cache) storage layers.
When to Sync
- On startup – After system initialization
- Periodic – Scheduled background sync
- Cache staleness – When redb appears outdated
- Recovery – After storage failures
- Manual trigger – When explicitly requested
Sync Process
-
Check connection health:
turso_client.ping().await?; redb_env.check_integrity()?; -
Fetch latest from Turso:
let episodes = turso_client .query("SELECT * FROM episodes ORDER BY timestamp DESC LIMIT ?") .bind(max_episodes_cache) .await?; -
Update redb cache:
tokio::task::spawn_blocking(move || { let write_txn = redb.begin_write()?; let mut table = write_txn.open_table(EPISODES_TABLE)?; for episode in episodes { table.insert(episode.id.as_bytes(), episode.to_bytes())?; } write_txn.commit()?; }); -
Sync patterns and embeddings if enabled
Configuration
pub struct SyncConfig {
pub max_episodes_cache: usize, // Default: 1000
pub batch_size: usize, // Default: 100
pub sync_patterns: bool, // Default: true
pub sync_embeddings: bool, // Default: true
}
Error Handling
| Error | Handling |
|---|---|
| Turso unavailable | Skip sync, log warning, retry later |
| redb corruption | Attempt repair, rebuild from Turso |
| Partial sync | Track progress, resume from last point |
Performance Tips
- Batch small operations
- Incremental sync (only changes)
- Parallel fetch with Tokio
- Write-ahead preparation
Validation
After sync, verify:
- Episode count matches
- Latest episodes present
- Pattern counts consistent
- No orphaned embeddings
Troubleshooting
| Issue | Solution |
|---|---|
| Slow syncs | Reduce cache size, increase batch |
| redb lock errors | Use dedicated write task |
| Memory pressure | Stream large results, smaller batches |