[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