Skip to content

symfonic.capabilities.memory.graph_direct_claims

graph_direct_claims

Post-commit retirement of direct-store native PostgreSQL claims.

retire

retire(store: Any, scope: Any, ids: tuple[str, ...] | list[str], outer: bool, claims: dict[tuple[str, str], str]) -> None

Never forget a token before an externally owned transaction commits.

Source code in src/symfonic/capabilities/memory/graph_direct_claims.py
def retire(
    store: Any, scope: Any, ids: tuple[str, ...] | list[str], outer: bool,
    claims: dict[tuple[str, str], str],
) -> None:
    """Never forget a token before an externally owned transaction commits."""
    if outer or not ids:
        return
    chosen = set(ids)
    for key, token in claims.items():
        path, record_id = key
        if (record_id in chosen and scope.covers(scope_from_path(path))
                and store._direct_claims.get(key) == token):
            del store._direct_claims[key]

retire_exact

retire_exact(store: Any, claims: tuple[tuple[str, str, str], ...], committed: set[str]) -> None

Retire only the same claim generation confirmed by an outer COMMIT.

Source code in src/symfonic/capabilities/memory/graph_direct_claims.py
def retire_exact(store: Any, claims: tuple[tuple[str, str, str], ...],
                 committed: set[str]) -> None:
    """Retire only the same claim generation confirmed by an outer COMMIT."""
    for path, record_id, token in claims:
        key = (path, record_id)
        if record_id in committed and store._direct_claims.get(key) == token:
            del store._direct_claims[key]