[Info-ingres] E_US1262 Your transaction has been externally aborted
Karl Schendel
schendel at kbcomputer.com
Thu Sep 24 11:38:46 UTC 2015
On Sep 24, 2015, at 1:21 AM, Paul White <paul.white at shift7solutions.com.au> wrote:
> How big is your transaction log? I suggest 2GB is reasonable for a busy
> production site.
> The transaction log records a before and after image of every page affected
> in an update.
While he generally agrees with Paul's observations, Captain Pedantic would like
to point out that this isn't quite how transaction logging works, at least not
for Ingres versions after 6.4. :-)
Generally, what is logged is an image of the row being changed. In the case of
an update, we update a row before- and after-image. For insert it's just
an after-image, for delete just a before-image. In a very few cases such
as BTREE split, a full page before- and after-image is logged, but that is
rare. In addition to the actual log record, log space is reserved for a potential
undo record, since undo operations are logged just like ordinary ones.
In addition to the excellent suggestions from Paul and Roy, I offer one
more suggestion and an observation:
You can try "set session with on_logfull=commit" which instructs Ingres to
simply force a commit if you run a transaction that uses too much log space.
I don't particularly care for this option, for various reasons, but sometimes
it's the simplest and quickest way forward.
The observation is that the 4K page size is generally not an ideal one.
It's not enough larger than the old 2K page to gain much advantage, and it's
too small compared to the various row and page overheads. As a general
rule, the 8K page size is preferable.
Karl
More information about the Info-ingres
mailing list