On Sat, 2003-11-22 at 12:02, D. Richard Hipp wrote:
> It is more complicated than that.  In order to maintain isolation
> (the "I" in "ACID") the second commit must fail if at any time during
> the transaction it read a value that was written by the first commit,
> or if the first commit read a value that was written by the second
> commit.  Figuring out what the first commit has read or written is
> likely to be difficult since the first commit has already occurred
> and (presumably) its journal has already been deleted.

Not necessarily; You could keep a hash of the "expected row" when
committing changes. If the hash doesn't match, fail the commit.

A reader will also keep a journal- even though they're not making
changes. A journal that contains hashes of every row it returned to the
user [perhaps some optimizations can be done here- maybe it should only
kick into this mode under certain circumstances] - these hashes are
checked when we do ANY update/insert/delete on that process- not just
the hashes of the rows for update.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to