Mailing List Archive



Back to the month index Back to the list index

Andre van der Vlies (A.G.van.der.Vlies@cb.hva.nl)
Wed, 9 Apr 1997 10:27:38 +0200 (CDT)


Date: Wed, 9 Apr 1997 10:27:38 +0200 (CDT)
From: Andre van der Vlies <A.G.van.der.Vlies@cb.hva.nl>
Subject: Re: Fw: [mSQL] Locking?
Message-Id: <Pine.SGI.3.94.970409100612.27329B-100000@ice.cb.hva.nl>

On Wed, 9 Apr 1997, Clyde Smith-Stubbs wrote:

> Thus spake Andre van der Vlies (A.G.van.der.Vlies@cb.hva.nl):
>
> > This is disturbing info. 'INSERT' and 'UPDATE' aren't atomic operations??
>
> Insert and update are atomic operations, the problem is that you can't
> guarantee someone else didn't do an insert just before you. The scheme I
> suggested relied primarily on the use of the _seq feature - but your question
> has just alerted me to a flaw in the scheme.

Okay, so we have got a 'race condition' here. Multiple clients trying to
access the same data (for updating). I believe that is well documented as the
'travel-agency problem'.
The locking scheme must be in the clients then to assure mutual exclusion.

I am using PyApache + PymSQL, I find this easier to maintain than w3-msql
(it just looks too much like perl). My httpd 'understands' python, which
allows me to test my code without the need for a browser ....

I think I can do this in python using the thread module and creating a
function for updating a table ....

>
> There is absolutely no need for any sychronization within msqld, for the simple
> reason that msqld is single-threaded, and simply processes each query to
> completion in order.

Apparently, but there might be a reason for it in the clients ...

                           Andre van der Vlies <A.G.van.der.Vlies@cb.hva.nl>
                           System Administrator
                           Hogeschool van Amsterdam
                           Stadhouderskade 55, Amsterdam
                           tel: (+31) 20 5702670
                           fax: (+31) 20 5702510
                           http://www.cb.hva.nl/~andre
Key fingerprint = 99 DC D6 01 96 C2 48 80 DC 9C D5 D2 34 F6 A6 5D

--------------------------------------------------------------------------
To remove yourself from the Mini SQL mailing list send a message containing
"unsubscribe" to "unsubscribe" to msql-list-request@bunyip.com. Send a message containing
"info msql-list" to majordomo@bunyip.com for info on monthly archives of
the list. For more help, mail owner-msql-list@bunyip.com NOT the msql-list!