Wrapping a sequence of object updates inside a transaction can make a huge difference to performance.

When an object is updated, it is marked as "dirty" and added to a commit list.

Even in short transactions, the GPO linking structures will frequently update the same object several times. But, if this is within a transaction, then normally only one update to disk will be made.

Long Lived Transctions

In the case of long lived transactions with thousands or even millions of updates, it is not feasible to buffer all updates until the final commit.

The objective of scalable performance and resource usage, requires an incremental strategy. Statistics indicate that this strategy works very well.

Commit Lists and Object Index

Both the commit list of "dirty" objects and the "dirty" index nodes are written incrementally when some threshold is exceeded.

Transactions Per Second

Notwithstanding the above comments, a number of benchmarks have been run on a 1Ghz PIII laptop delivering over 5000 transactions per second for simple updates.

These figures should give confidence to anyone considering using GPO in a Web Application context.