Subject Re: [Firebird-Architect] Group Commits
Author Jim Starkey
In researching group commit, it appears that two trivial changes are all
that are necessary to keep non-writing transactions from doing and disk
writes at all:

1. Change the code that updates the header page to allocate a
transaction id from "MARK_FORCE_WRITE" to just MARK
2. Change the code that updates the tip to do a MARK rather than
MARK_FORCE_WRITE when committing a non-writing transaction.

The first is safe because the header page is always declared has a
higher precedence page to any data page changes, meaning the header page
will always be written before a data page containing a new transaction
id. The second is safe because nobody but nobody cares about a
transaction that didn't do anything.

[Non-text portions of this message have been removed]