Tänkte beskriva lite om hur Bloggy är uppbyggt rent tekniskt. En förfrågan till Bloggy går ungefär igenom följande lager:
MySQL <- Sphinx <- Memcached <- Apache <- Varnishd
Varnish är en högpresterande webb frontend-proxy utvecklat av ett norskt företag och används exempelvis av Aftonbladet. Detta går att utläsa genom HTTP-headern X-Varnish.
Denna frontend-cache används för att hantera alla statiska filer såsom CSS och bilder. Apache behöver jag inte skriva så mycket om men sedan kommer en intressant del och det är memcached som är utvecklat av Facebook.
De flesta SQL-frågor går genom memcached för att cachas ett antal sekunder, varje SQL-fråga är noggrant studerad hur länge den behöver cachas.
Sphinx är också en intressant del eftersom den gör att fulltextsökningar mot olika tabeller i MySQL-databasen. Sphinx tar hand om runt 40 sökningar i sekunden.
Sedan så kommer MySQL som hanterar allt annat som inte fångas upp av något av ovanstående system. Alla frågor har optimerats så att filsorteringar (file sort) och dylikt används minimalt. Jag har även tidigare (2007) bloggat om hur du kan optimera din MySQL databas.