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