5 ms·
Using WordPress with Cassandra or other NoSQL databases?
- byoung2 16y agoYou could modify Wordpress to scale without getting rid of MySQL. You would have to modify Wordpress to use a master/slave setup so that reads came from a cluster of read-only slaves, and writes go to a read/write master. You would also take advantage of static file caching. Most Wordpress installations are going to be more read-heavy than write-heavy. Take a typical tech blog like Engadget or Techcrunch...there will be a handful of authors, dozens or hundreds of commenters, and thousands to tens of thousands of readers at any given time. You should be able to handle this type of load using static caching and a master/slave database. For users who aren't logged in, serve pages from a static file cache with a 5 or 10 minute timeout. They won't notice that the latest comments aren't there anyway, since they aren't commenting themselves. You can scale this static cache very easily with Varnish, nginx, etc. For users who are logged in, serve pages from the database, using a cluster of read-only slaves. This way, they see the latest comments, but since they are being served from slave servers, you can scale this very easily. You could use static caching in front of this setup as well, with a shorter timeout (maybe 30 seconds or less). For the very small percentage of logged in users who are actively commenting (or performing other activities like voting on polls, rating posts/comments), use the write master database. This will usually be a very small number (dozens to hundreds out of tens of thousands), so load shouldn't be an issue. If you have a particularly active community, you could set this up as a circular replication cluster with multiple write masters.
- cheald 16y agoThe problem with Wordpress isn't the choice of data store, and I say that as someone who uses and loves MongoDB. Wordpress itself is relatively slow and inefficient in a number of places. It doesn't come with any appreciable caching built in out of the box. It makes bad assumptions about the amount of data you're going to be dealing with. Various plugins are naive and trash your performance. While it'd be neat from a curiosity standpoint to see Wordpress running on a NoSQL database, it wouldn't magically make Wordpress "web scale". PHP is slow and memory-hungry, and if you don't aggressively cache your pages, you couldn't easily scale Wordpress even if you had a magical infinitely fast data store.