Loading...
Loading...
Synchronize memories between Turso (durable) and redb (cache) storage layers. Use when cache appears stale, after failures, or during periodic maintenance.
npx skill4agent add d-o-hub/rust-self-learning-memory storage-syncturso_client.ping().await?;
redb_env.check_integrity()?;let episodes = turso_client
.query("SELECT * FROM episodes ORDER BY timestamp DESC LIMIT ?")
.bind(max_episodes_cache)
.await?;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()?;
});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 |
|---|---|
| Turso unavailable | Skip sync, log warning, retry later |
| redb corruption | Attempt repair, rebuild from Turso |
| Partial sync | Track progress, resume from last point |
| Issue | Solution |
|---|---|
| Slow syncs | Reduce cache size, increase batch |
| redb lock errors | Use dedicated write task |
| Memory pressure | Stream large results, smaller batches |