Re: computational model of transactions




"J M Davitt" <jdavitt@xxxxxxxxxx> wrote in message
news:3d2Bg.44572$vl5.12370@xxxxxxxxxxxxxxxxxxxxxxxxx
Brian Selzer wrote:
"J M Davitt" <jdavitt@xxxxxxxxxx> wrote in message
news:QVSAg.63281$Eh1.62802@xxxxxxxxxxxxxxxxxxxxxxxxx

Brian Selzer wrote:

"Brian Selzer" <brian@xxxxxxxxxxxxxxxxxxx> wrote in message
news:voHAg.4447$uo6.79@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

"Erwin" <e.smout@xxxxxxxxxxx> wrote in message
news:1154689817.830401.130180@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

[snip]

The semantics of the update involve modification, not replacement

You obviously see a difference between modification and replacement.
I
don't. So please explain.

[snip]

I'm back. I agree that the updates need to be isolated, but I disagree
with the idea that the entire transaction needs to be isolated or
serialized. It is only necessary to obtain an exclusive lock on the
affected row at the time that the update to the shared resource occurs,
so it's possible to have several other intervening transactions commit
between the time that the transaction starts and the time that the
update starts. My point is that it is not necessary to isolate the
entire transaction, only that portion from the start of the update until
the commit.

Are we to understand that "it's possible to have several other
intervening transactions commit between the time that the
transaction starts and the time that the update starts" means
that you believe that at "the time the update starts" the value
of whatever attribute is being changed isn't the same as it was
when the transaction started?


Yes. The nature of the update makes this possible. An update that
simply decreases inventory by 5 need not know the state of the inventory
at the time that the transaction started. If you issue,

[snip]

It would appear that you view "modification" and "replacement"
as two different sorts of updates. To the database engines
that are providing concurrency and correctness, those are
indistinguishable, AFAIK.


Yes, I do. Modification depends on the current state of the attribute;
whereas replacement doesn't.
Database engines can provide concurrency and consistency, not correctness,
so in a replacement, the assumption is that the new value is correct, and
it's up to the application to correctly calculate the new value; whereas
with modification, the new value is calculated by the database engine. This
means that for replacement it's also up to the application to request the
correct level of concurrency, which can be more restrictive for replacement
than for modification.

Also, your transactions seem like accounting system
concepts rather than database concepts.

While, in accounting, it seems to be possible to simply dump
all the debits and credits in a hopper and allow them to be
processed in random order, there comes a time when activity
must be serialized. The bookkeeper that's cross-footing
a page isn't going to be very happy with the clerk who wants
to change an entry that's been footed in one column but not
another.


.



Relevant Pages

  • Re: computational model of transactions
    ... replacement. ... disagree with the idea that the entire transaction needs to be ... the inventory at the time that the transaction started. ...
    (comp.databases.theory)
  • Re: computational model of transactions
    ... disagree with the idea that the entire transaction needs to be ... whereas replacement doesn't. ... Database engines can provide concurrency and consistency, ...
    (comp.databases.theory)
  • Re: computational model of transactions
    ... It is only necessary to obtain an exclusive lock on the affected row at the time that the update to the shared resource occurs, so it's possible to have several other intervening transactions commit between the time that the transaction starts and the time that the update starts. ... Modification depends on the current state of the attribute; whereas replacement doesn't. ... Database engines can provide concurrency and consistency, not correctness, so in a replacement, the assumption is that the new value is correct, and it's up to the application to correctly calculate the new value; whereas with modification, the new value is calculated by the database engine. ...
    (comp.databases.theory)
  • Re: computational model of transactions
    ... replacement. ... transaction starts and the time that the update starts. ... UPDATE Inventory ...
    (comp.databases.theory)
  • Re: computational model of transactions
    ... replacement. ... disagree with the idea that the entire transaction needs to be ... the inventory at the time that the transaction started. ... correctness, so in a replacement, the assumption is that the new ...
    (comp.databases.theory)