[consulting] Drupal server requirements

John Handelaar john at userfrenzy.com
Tue Mar 28 15:02:45 UTC 2006


Harry Slaughter wrote:
> John Handelaar wrote:
>> While a WRITE is in progress, MyISAM locks the whole
>> table.  Result:
>>
>> 1.  All WRITEs wait until existing READs finish.
>>
>> 2.  *All* READs stop dead until the WRITEs are done.
>>
>> 3.  All new READs are created as new processes, happily
>>     queuing up, chewing memory like locusts, and ticking
>>     off their max-execution-time clocks and doing nothing
>>     else until 1 and 2 are done.
> anecdotal evidence is interesting enough, but hard numbers are what's 
> relevant?


This all derives from analysing MBR.org to death when
it hit the wall earlier this year (at the 2m-pages-per-
month mark, roughly, on a server running Apache1.3
and MySQL 4.1 with 1Gb of memory).

I'm explaining it with the 3-step logic above, which
if you read it carefully, describes a process which
*will* always fail under high load.

It's not even about the read/write ratio.

When you have a very high volume of READs, even one
comment posting will cause a traffic jam at the
database side because of the table locking.

I'm suggesting InnoDB because with Drupal, in almost
every case, that engine will use row-level locking
only and hence *not* stall all pending reads.  Any
other engine capable of row-level locking will
also help.



-- 
-------------------------------------------
John Handelaar

E  john at handelaar.org    T +353 21 427 9033
M  +353 85 748 3790    http://handelaar.org
-------------------------------------------


More information about the consulting mailing list