RailsConf 2008 – Surprise of the Day: Maglev

Definitely the surprise of the day for me was attending the session on MagLev. Before today, I’d never heard of MagLev or Gemstone. On a whim, I walked into this talk instead of watching another one on deploying (which I feel I have enough experience in).

To sum up the MagLev product: it is a Ruby Virtual Machine (I know, I know, not another one…but stick with me!). This virtual machine adds a shared object cache so that separate instances of a Ruby app will share a state and this shared object state is persistant beyond the VM instances.

Avi showed a great demo of two VM instances sharing data. Then we got to see some preliminary performance data that showed an order of magnitude or TWO increase over MRI 1.8. So far so good!

The audience got into a discussion about the future plans for the system and we came out with a few critical things:

  • The Gemstone VM supports ACID transactions and will support some indexing functions to allow for fast data lookup. It became very obvious that the plan is to actually replace ActiveRecord in Rails and instead just use a huge persistent cached object store for data. It’s a terrific idea. We all know that relational databases have an inherent (and probably insurmountable) problem with scaling especially with complex joins and querys. In the same way that Amazon SimpleDB, Google App Engine, CouchDB, etc all limit your ability to do complex joins in exchange for a much more feasible scaling plan, so too could this system provide fast, efficient, and limitlessly scalable data storage and lookup.
  • The product is nowhere near ready. Ah yes…there had to be a downside. Although the product has made great strides (thanks mostly to Ruby’s similarity with Smalltalk and the existance of the Gemstone Smalltalk VM), it still has a ways to go. It can’t run all the Ruby benchmarks, can’t pass the Ruby specs, and definitely can’t run Rails. But they’re getting there. In a year from now, I expect this to be a big talk of the town.
  • This kind of development effort doesn’t come cheap. Gemstone is a commercial/enterprise oriented company, and as such it’s clear they have plans to make money from what they’re building. However, they made it very clear that portions of this system will be open source, other parts will be free, and the rest will be cheap or free for small to medium sized use. It will likely be similar to the Smalltalk VM, which is free for the first 4GB of storage. My personal feelings on the matter is: good for them. It costs money to develop software this advanced and they have every right to commercialize it to make as much profit as possible, same as I do every day to put food on the table. I applaud them for releasing a substantial portion of what they build for free (speech and/or beer), and I hope to be the first in line to pay when it comes time.

“Screw the databases, why would you want to use a relational database” – Chad Fowler

8 thoughts on “RailsConf 2008 – Surprise of the Day: Maglev”

  1. So, did you get paid to write such a glowing review of a non-existent vaporware commercial product?

    Or just gullible?

    Who needs to pay for PR these days, seems bloggers like you just give it for free every time.

    Wow, sometimes next year (unconfirmed) I might be able to buy a product which speeds up ruby (unconfirmed) for a lot of money (unannounced). Stop the freaking presses. My only question is will it include WinFS and can I play duke nukem 4 on it?

  2. V. Rammstynokov:
    I certainly didn’t get paid. Last year, Rubinius had a presentation just like Maglev: Practically no product. The year before: jRuby. I’m fairly skeptic about vaporware, and here’s the reasons I think Maglev comes out ahead:

    1) It’s based on the Gemstone Smalltalk VM. This is a valid, existing product that does the exact same thing. Avi mentioned that all they’re really doing is parsing Ruby instead of Smalltalk (very similar).
    2) I applaud them for following the ‘release early’ mantra. Their product isn’t close to done. They could have kept it under wraps for another year until it was ready. Instead they said ‘This is what we’re trying to do and this is where we’re at’ and they opened themselves to the community for use, feedback, etc. Good for them, I say.

  3. I know Io is an esoteric language, but it is quite similar to Ruby and Smalltalk but simpler (prototypes instead of classes / simple syntax) and even more dynamic (lazy message evaluation, parse tree is maintained / modifiable).

    We’ve been working on something like Gemstone over the last few weeks and we just released a non-shareded version that works nicely!

    If anyone is interested and would like to give feedback / contribute, please check it out and let us know what you think:


  4. Maybe releasing numbers before enough benchmarks are reached isn’t such a good philosophy, despite your keenness on “release early”. Right now it’s still a wait and see deal. It’s good that they open up their work for feedback but I hope their prepared for the skepticism that is sure to (and hopefully will) follow this talk. Once everything is wired up these benchmarks will look very different.

Leave a Reply

Your email address will not be published. Required fields are marked *