Tulipa tutkittua hieman Drupalin ja MySQL:n skaalautuvuutta. Ikävä kyllä oli todettava, että vaikka Drupal on hyvin suorituskykyinen yhdellä MySQL-palvelimella, niin sitä ei voi oikein mitenkään skaalata käyttämään useita tietokantapalvelimia.

Käytännössähän vaihtoehtoja on kaksi: klusterointi tai replikointi. MySQL Cluster on vielä niin lapsenkengissään oleva tuote, ettei sitä oikein uskalla viedä tuotantoon. Ensinnäkin klusterointi asettaa tietokannan tauluille kaikenlaisia rajoituksia, mikä edellyttää Drupalissakin oletustaulurakenteiden pientä muokkaamista. Toisekseen suorituskyky on todella heikko. Ilman Drupal-välimuisteja klusteroidusta kannasta tuntui saavan noin 30% tavallisen kannan tehosta irti. Välimuistien kanssa ero kärjistyi: klusterin suorituskyky oli enää 10% luokkaa.

Replikointi puolestaan olisi ihan hyvä tapa skaalata Drupalia, jos Drupal vain osaisi ohjata read- ja write-operaatiot eri tietokantoihin. Silloin voisi olla yksi MySQL master ja useita readonly-slaveja. Valitettavasti tämä toiminnallisuus on tulossa vasta Drupal 7:ään. Erillisiä apuvälineitä löytyy, esimerkiksi MySQL Proxy, mutta ne eivät ole vielä tuotantovalmiita versioita.

Sinänsä Drupalin suorituskyky näyttäisi olevan kyllä oikein hyvä, varsinkin kun välimuistit laitetaan päälle. Muutamalla HTTP-palvelimella näyttäisi saavan palveltua helposti 1000 pyyntöä sekunnissa, ainakin jos sisältö on yksinkertaista.

Published 30.4.2008