I think the real reason there was resistance to this change is that MySQL doesn’t support DDL transactions; and wrapping migrations in a transaction is mostly pointless without this feature. Since MySQL doesn’t support it, most Rubyists don’t know what DDL transactions are – so here’s a quick primer on this incredibly useful and certainly underrated feature.
DDL = data definition language, also known as the schema. DDL commands include CREATE TABLE, DROP TABLE, ALTER TABLE, and CREATE INDEX. DDL transaction support means that the following sequence of SQL commands will not modify your database
I never even thought of that. I was fairly confident in my vision of Postgres getting faster and faster, and Mysql become a “real” database… that the two systems were converging on something resembling a common speed/feature set. But things like this still occasionally rear their ugly heads and I’m happy to be a Postgres user.
I have started to look at Passenger (mod_rails) + "Ruby Enterprise Edition" (which is just a corny name for a nice GC hack that significantly reduces memory consumption) because of the aforementioned problem with Slicehost’s x86_64 amplifying Rails’ already voracious memory gobbling. So I did a few crappy benchmarks, comparing Mongrel to mod_fcgid and mod_rails. I didn’t look at concurrency, as that’s a can of worms I wasn’t prepared to open. I just wanted to see what raw speed was like. I used two methods from a project of mine, one, showall is quite DB intensive, and index does hit the DB, but not so much.
Looks like mod_fcgid and mod_rails (both running in devel mode) are faster, at least for this very unscientific benchmark. One other advantage those two Apache modules have is that they make life simpler – mod_rails even more than mod_fcgid, and don’t require an alphabet soup of mongrels and proxies and nginx, lighttpd or whatever the event-based server du jour is. Like I said though, the benchmarks are quick and dirty, and probably have issues. I’d be curious to see better ones *as long as they include mod_fcgid*.
Incidentally, it looks like linode.com uses regular x86 servers, so if you’re doing Rails, this is definitely a point in their favor, or at least something to consider when you compare the memory that they and slicehost give you.
That said, I still don’t have stable access to a Mac. Does anybody have
a 64-bit OS X server and can provide me with SSH access? Preferably
something that I can have access to for a long time, so that I don’t
have to keep asking for OS X access. 🙂
He’s in .nl if it makes any difference. I’m not that wild about “passenger” by itself (mod_fcgid does ok for what I need), but the “enterprise ruby” project, which is basically a reworking of how Ruby’s garbage collection functions, is a useful and timely idea, given how much of a memory hog rails is.