Re: [PHP] database abstraction layer

[email protected] (Robert Cummings)
Newsgroups php.general
Organization InterJinn
Message-ID <[email protected]>
Rene Veerman wrote:
> i haven't had the pleasure yet of writing for sites that generate so many
> hits/sec that
> they'd update the max value of any table at exactly the same time.
> 
> i usually ask for the max value about 2 milliseconds before doing the
> insert.
> And if the insert fails, i can auto-retry via a wrapper function after
> sleep(rand(1,3));
> I dare say i could work this way at facebook <g> (not that i really want to,
> happy with where i am)

This is a race condition... all you need are two hits per day... one 
from person A and one from person B. If they happen within short enough 
temporal proximity then the race is on.

Now... a big fat lock around the table before the request for max ID and 
the insert query ought to mitigate your issue. Although I wouldn't call 
my function getMaxId() I would call it getNextId() :)

Cheers,
Rob.
-- 
http://www.interjinn.com
Application and Templating Framework for PHP
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.