[Info-ingres] E_US1262 Your transaction has been externally aborted
Karl Schendel
schendel at kbcomputer.com
Thu Sep 24 13:58:36 UTC 2015
On Sep 24, 2015, at 8:27 AM, Paul White <paul.white at shift7solutions.com.au> wrote:
> Hey cap'n. Thanks for that. It does make me wonder why I fill a 1GB transaction log by updating a table weighing just a few hundred MB.
The force-abort limit is typically around 70+%, so you're really filling 700+ Mb. Even though
we're logging rows, not pages, there is log record overhead which is probably a bit more
than the tuple overhead in the table (especially if it's the old 2K page). Your observation
that a full update of a table needs roughly 2x the table (data) size of log space wasn't wrong,
and that's without including the log space reservation in case of rollback.
The "new" logging method post-6.4 uses significantly less log space for small operations.
It can use quite a bit more than 6.4 for operations that touch all of the rows in a majority of
pages in the table. Since bulk operations are comparatively rare, the new method
is a win in most cases. The other advantage of the new logging system is that it's
optimized for commit. The 6.4 logging system was in effect optimized for rollback, in
the sense that it would (usually) do a lot more logging work, but rollback was easy.
In the new system, logging is usually reduced, but rollback is harder to do.
Karl
More information about the Info-ingres
mailing list