You've got to hand it to Amazon for pouncing on seemingly every opportunity in large-scale cloud computing and turning it into an on-demand service.
Its latest offering: Amazon DynamoDB, "a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability."
Translation: Amazon has begun renting the kind of database technology that could enable anyone -- anyone who was foolish enough, that is -- to launch, say, their own version of Facebook or Twitter. On paper, anyway, DynamoDB is a database in the sky that can grow to enormous sizes just as rapidly as needed, with no slowdown in response times. That's accomplished, Amazon CTO Werner Vogels explains, through some clever scaling techniques that automatically spread the work of updating and searching for database items across as many compute nodes as an application requires, essentially without limit.
In case you're not familiar with it, NoSQL is one of the hotter topics in very large database circles these days. The term refers, not to a single product or design, but to a class of data management schemes that organize and index records differently than do traditional relational DBMS. NoSQL systems add a certain amount of structure to data, just to help find selected items quickly, but they don't lock data into the strict rows and columns at the heart of relational DBMS.
Relational systems are designed with the idea of not only finding selected sets of data quickly but also making sure that any data that gets added, or written, to a database is prevented from corrupting what's already there. That's a must for handling financial transactions, for instance.
NoSQL systems, in contrast, are designed with size, speed, and resiliency in mind: instantly retrieving records about all editions of all books authored by or mentioning, say, Jackie Collins so they can be sent to a shopper on Amazon.com, for instance. Even as Amazon serves zillions such page views every hour, it's also adding and removing thousands of products from its catalogue every day, or even every hour.
NoSQL software has gained a good deal of fame as the engine that runs some really, really big Websites, including Facebook, Netflix, and online games providers like RockYou. The latter reportedly uses a NoSQL database to record every mouse click generated by the 50 million people who plays its games each month.
In effect, Amazon has launched what amounts to Rent-a-NoSQL. Its DynamoDB service puts a highly scalable database structure in the hands of any organization that might want to harness NoSQL technology but doesn't want to invest in its own hardware and software, or risk outgrowing that infrastructure when its mobile-focused social media service, for instance, suddenly takes off.
Amazon cites online gaming as the kind of workload for which DynamoDB is perfectly suited: At launch, Angry Nerds might enjoy a few thousand users generating maybe 10 database writes and 50 reads per second. Should the game hit big, however, millions of users might flock to it, collectively generating tens or even hundreds of thousands of reads and writes per second. And the game might also create terabytes of data each day. Amazon says that by using its new service, such a game could scale up effortlessly, with no need to rewrite the game code itself. Much gain, no pain.
In the enterprise realm, NoSQL has obvious application in large-scale analytics: risk management, fraud detection, business intelligence, military intelligence work, and so forth. And it should satisfy just about any company's need for speed: DynamoDB stores a client's data on solid-state disks. Personally, I can't wait to see what gets built on this new database platform.
What would you use DynamoDB for? Any thoughts on the possibilities of ultra-large DBMS? Been there, done that? Our message boards await.