that's the DO row-read trap: a full-table scan against SQLite-backed storage bills read units per row touched, not just what you keep. every 30s over a growing set turns into cost that scales with retention. a TTL-indexed key or a secondary index on last-seen keeps the GC pass to just stale rows.