MXNA Performance and Uptime

I know some of you have noticed (since you have sent me email) that MXNA and our weblogs have occasionally been going down, and that the server is often pretty slow. As we accumulate more and more feeds, more archived posts, more traffic, and as more people have started using our ping API so that we pick up their posts in realtime, the server has really suffered. After a little investigation, we discovered that PostgreSQL processes were always to blame whenever the server was in a bad state. I tried installing hot fixes, updated drivers, and even experimented with caching, but PostgreSQL has continued to have problems. Finally, Mike Chambers and I decided to try switching my MySQL, instead, since it is known for it’s superior performance. After about a day of migration work, MXNA is now running MySQL, and it is many times faster than it was. Even the largest queries return almost instantly, and MySQL processes have very little impact on overall system resources. We had opted for PostgreSQL over MySQL initially because:

  1. The PostgreSQL command line interface is better than MySQL’s (out of the box).
  2. PostgreSQL supports more features.
  3. I have always found PostgreSQL’s security and user model to be more intuitive and easier to work with.

In the end, however, performance is our #1 priority, so now I am very happy with MySQL, and with the state of MXNA. We have a couple new features which we have been hesitant to launch because of performance issues which now I believe will be receiving the green light very soon. Stay tuned.

10 Responses to MXNA Performance and Uptime

  1. The reorg. of the categories at the top threw me off a bit…

  2. AJ says:

    How can I remove myself from the mailing list for this blog??Please advise.

  3. Barry Frost says:

    What platform was PostgreSQL running on? Which version of PostgreSQL were you using and which JDBC library? What kind of load?We’ve found PostgreSQL to perform really well on a fairly high volume website so it’s slightly worrying to hear that it didn’t scale well for you. Any extra information on your setup would be useful.

  4. Will this be re-released on another DRK or will it be available for ppl who have already purchased DRK5?

  5. mike chambers says:

    Peter,We didnt make any changes to the MXNA code for this, rather, we just switched databases.mike

  6. Micha Schopman says:

    I have a list showing what is wrong with MySQL. I do not get, could Macromedia not sorta sponsor a SQLServer licence. This weblogs are great publicity for Macromedia.

  7. Markme runs Linux, so SQLServer wouldn’t do us much good.Thanks for MySQL list.Christian

  8. Todd says:

    Mike Chambers, you have to have made changes to the MXNA code. Mysql doesn’t support subselects just yet (newer 4.1 alpha builds do) and the last time I looked at MXNA code, there were subselects involved? It’s been awhile for me.Christian, I’m pretty sure you know it’s possible for cfmx on linux to talk to sql server, but I think (like myself) you wanted to run it all on one box. Is there any chance we could get a MySQL friendly “Pollster” application someday or perhaps get a Pollster app that at least allows for MySQL compatibility?

  9. MXNA doesn’t use any sub-selects, so we were able to migrate with just a couple of code changes (mostly case changes since MySQL is case-sensitive). And yes, we wanted it to all run on one box. We were thinking about using a separate Windows box for the database server, but as long as everything is running smoothly, that’s overkill.Regarding Pollster, there will not be a MySQL version on the next DRK. Pollster does use sub-selects, and at the time it was released, MySQL did not support either sub-selects or transactions (I’m pretty sure). It wouldn’t be hard at all to get it to work with MySQL, though. Just update the data types in the build script, and you might have to tweak the syntax here and there, but that’s it.

  10. Todd says:

    I wish it were that easy, but I’ve tried getting Pollster working with MySQL. There’s more to it than just moving things around. I found that there was so much additional work that needed to happen, I stopped and decided it wasn’t worth screwing with.