Multi-User Blog Hosting With Wordpress
Blog hosting with Wordpress is pretty complex and there’s a few options.
Firstly there’s WP-MU, which is the ‘official’ multi-user code. It’s stable and polished, yet has some issues – the main one for me is that every blog has its own set of database tables. I can’t for the life of me figure out why they did this. I can’t find any official information on it either.
The reasons I’ve seen banded about are that it makes the system more scalable and it’s easier to split sites between database servers. This might be true as far as splitting goes – but scalable? I’m not so sure.
To understand why it affects scalability of the system you need to understand the way MySQL works, but directly related to this it’s simple to understand – for each table MySQL holds open a number of files so when it needs to access a table it doesn’t become bogged down in kernel tasks (opening files and closing them takes time – CPU time, not to mention IO time). The more tables you attempt to cache the more memory you use also.
So you have a choice, do you try to cache lots of tables or waste CPU time? Then on top of that you have the problem that it stops you doing site-wide queries, like say you wanted to get the last 10 blog comments or the last 10 posts globally? You can’t sensibly – you need to figure out which blogs were updated last and play a guessing-game, thus increasing load on the server.
Seems to me that the WP-MU don’t know what clustering is for and that they don’t understand how MySQL works – there’s also a severe lack of indexes which is very bad, and more evidence of a lack of understanding when it comes to MySQL’s inner workings.
The second choice is Lyceum – this is better – sort of. Sites share one set of tables and there’s plenty of indexes – good so far. But wait, what version of Wordpress is it? Something old I can tell you that. This project is dead.
Worse, the global users feature of wp-mu is great, Lyceum doesn’t have that. The other issue is that there is a massive amount of coding needed every time a new version of Wordpress is released – far more than wp-mu at any rate, which is probably why the project is almost dead.
Then there’s a third way. Do it yourself? Starting to look like an option. Basically I’d take the best of wp-mu and Lyceum and see what happens. But then this would take a massive amount of time to code. Though if I stayed up-to-date with it I wouldn’t need to do so much work every time WP is updated – that’s what 3–way diffs are for.
But I don’t have time for that, so I’m sticking with WP-MU for now, seems the best option out of the 3.




























21. May, 2007 at 06:21
Thanks for your thoughts– you’ve been blogged on the Lyceum blog!
http://lyceum.ibiblio.org/2007/05/21/praise-and-fair-criticism-for-lyceum/