On Feb 27, 2004, at 19:30, Lars Aronsson wrote:
Timwi wrote:
This is three operations for something that can be done in one. (Simply insert a row into some generic table, 'articlerevisions' or somesuch.) There is neither a reason for the cur/old split, nor is there a reason for the 'recentchanges' table.
Good thinking, could be worth trying. However, you should consider that the number of edits is far smaller than the number of reads. And a read is a simple select from today's cur table.
The primary difficulty is with reads, not writes. We have a fair number of operations that want to draw on both current and old revisions and working with two tables split between current and old is very difficult for that; it leads to uglier, more complicated, harder to maintain, buggier code. (The writes are also buggier with the split. We had to track down and fix a number of race conditions which could and did destroy near-simultaneous edits, and others may remain.)
-- brion vibber (brion @ pobox.com)