Subject | Re: [Firebird-Architect] Group Commits |
---|---|
Author | Jim Starkey |
Post date | 2004-11-07T02:07:56Z |
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]
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]