mirror of
https://github.com/agent-substrate/substrate.git
synced 2026-10-02 03:24:42 +08:00
Fixes #664 This PR implements the idea described in https://github.com/agent-substrate/substrate/issues/664#issuecomment-5499311489 It does more than Garbage Collection of snapshots, because we also got rid of the Snapshot resource (from the DB/API). Now, an external snapshot is owned by a single resource: - An Actor owns the snapshot it writes at suspend - A tag owns a copy taken at tag creation, - An actor cloned from a tag borrows the tag's snapshot until its own first suspend. Garbage Collection: whoever created/owns the snapshot is the only one who ever deletes them: i.e., if an actor is deleted and it owns a snapshot. The underlying snapshot is deleted with the actor. this PR: - Drops table actor_snapshots - Keeps table actor_snapshot_tags - Adds an object copy at tag creation, and an owned versus borrowed distinction on the Actor - Adds synchronous external snapshot deletion at actor suspend, at actor delete, and at tag delete > It's a good idea to open an issue first for discussion. - [x] Tests pass - [x] Appropriate changes to documentation are included in the PR