{"id":"gc-preserves-active-snapshots","text":"Garbage collection removes only versions unreachable by any active transaction, ensuring long-running read-only transactions see consistent data","truth_value":"IN","source":"entries/2026/05/29/topic-mvcc-snapshot-isolation.md","source_url":"","source_hash":"","justifications":[],"dependents":[],"metadata":{"example":"def garbage_collect(self):\n    min_active = min(tx.tx_id for tx in self._transactions.values() if tx.is_active)\n    # only remove versions invisible to all active transactions"},"explanation":{"steps":[{"node":"gc-preserves-active-snapshots","truth_value":"IN","reason":"premise"}]}}