Are cloud based memory architectures the next big thing?
highscalability.com
highscalability.com
That said, there are already several hybrid memory/disk storage layers that might actually be a better choice than the pure in-memory approach that the author suggests. For example, MongoDB is basically an in-memory document database that's mmapped to a disk file and flushed once per minute. CouchDB, IIRC, is basically an in-memory database backed by an append-only transaction log on disk. These sorts of designs should give you many of the bandwidth advantages of pure memory systems, but still maintain the ability to survive a power outage.
># Scalability is linear because as more servers are added data is transparently load balanced across the servers so there is an automated in-memory sharding.
># Availability is higher because multiple copies of data are kept in memory and the entire system reroutes on failure.
># Application development is faster because there’s only one layer of software to deal with, the cache, and its API is simple. All the complexity is hidden from the programmer which means all a developer has to do is get >and put data.
All but the first thing apply to disk based databases too... At least the new ones like Cassandra, as well as the old ones with the right packages.
If you go play around on Twiddla today, chances are nothing you do there will end up on physical storage, ever. All the sandboxes and guest sessions spend their entire lives in memory, and only in very rare cases get persisted to the database these days.
One side effect of doing this is that it makes scaling out a lot easier. If we ever hit a traffic spike that bothers our server, I can spin up a few EC2 instances and hand off the actual Twiddling to them without having to worry about what to do about getting the data written back to the database.
It also makes a nice differentiator between free and paid plans: If you need the ability to save your stuff, we're happy to let you pay to do so. If not, go nuts, since it doesn't cost us anything to keep you in memory.