[Zope] zope operations atomic?
Kapil Thangavelu
k_vertigo@yahoo.com
Thu, 1 Nov 2001 10:02:56 -0800 (PST)
even more generally the problem can be stated as
transaction A starts reads a bunch of objects,
transaction B starts and will read a set of objects
that intersects with transaction A. transaction A
commits changing objects that B is about to read
(after B has read some objects). B finishes, and has
possibly commited or done operations on data that is
no longer in sync because the set of data may not have
been consistent for its operation, hence the dirty
read.
this is a more interesting and IMO legitimate concern,
i haven't done any testing recently, but i believe as
it currently stands this should throw a ConflictError
(i'm not sure, though.). Jim and pythonlabs have
talked about setting up some sort MVCC for the zodb,
whereby transaction B will see a snapshot of objects
as it existed when it began. if you're interested in
this further i would send mail to the
zodb-dev@zope.org list, referencing this thread.
cheers
kapil
--- Clark OBrien
<COBrien@isis-server.vuse.vanderbilt.edu> wrote:
> Here is the example I was thinking about.
>
>
> 1) Suppose an online store is selling product X and
> at a
> given moment its inventory is n. Two shoppers hit
> the buy
> button at about the same time.
>
> Then either:
>
> a) No conflict is detected because both threads set
> the inventory
> value to the same value, n-1. This would cause a
> problem if n = 1
>
> Or:
> b) A conflict is detected when the last thread
> writes because the inventory
> is not
> n as it was when he read it. request is resubmitted
> but again another thread
> has
> changed made the value dirty- thread starves.
>
>
>
>
>
>
>
>
>
>
> -----Original Message-----
> From: Chris McDonough [mailto:chrism@zope.com]
> Sent: Thursday, November 01, 2001 6:50 AM
> To: Clark OBrien; k_vertigo@yahoo.com; zope@zope.org
> Subject: Re: [Zope] zope operations atomic?
>
>
> What is "the dirty read problem"?
__________________________________________________
Do You Yahoo!?
Make a great connection at Yahoo! Personals.
http://personals.yahoo.com