Relying on large offsets can have uneven performance on huge table, new implementation recovers more cleanly and avoids double updates