Amazon’s SimpleDB isn’t a relational database, but it does provide elastic scalability and high-availability. Amazon’s recently announced Relational Database Services (RDS) is a relational database, but it doesn’t provide elastic scalability or high-availability. If you are deploying enterprise applications on the cloud (including Amazon Web Services), you might want to look at ScaleDB because it is a relational database and it does provide elastic scalability and high-availability.
Amazon describes SimpleDB by comparing it to a clustered database:
"A traditional, clustered relational database requires a sizable upfront capital outlay, is complex to design, and often requires extensive and repetitive database administration. Amazon SimpleDB is dramatically simpler, requiring no schema, automatically indexing your data and providing a simple API for storage and access. This approach eliminates the administrative burden of data modeling, index maintenance, and performance tuning. Developers gain access to this functionality within Amazon’s proven computing environment, are able to scale instantly, and pay only for what they use."
In other words, if there was a clustered database that was cost-efficient, simple, low-maintenance, and provided dynamic elasticity, that would be ideal. That is exactly what ScaleDB provides. Granted it isn’t as simple to use as SimpleDB (just look at the name, one is simple, the other is scale) but it does eliminate data partitioning and slaves/replication, both of which account for the bulk of the pain in clustering. ScaleDB also runs MySQL applications without modification.
Amazon, in a nod to SQL developers and MySQL applications, released Relational Database Services (RDS) this week. This too comes up short of Amazon’s ideal of a dynamically scalable and highly available MySQL database. Again, that is exactly what ScaleDB provides.
Comparing SimpleDB, RDS and ScaleDB
| Function |
SimpleDB |
RDS |
ScaleDB |
| Transactions |
No |
Yes |
Yes |
| Joins |
No |
Yes |
Yes1 |
| Data Consistency |
No (Eventual) |
Yes |
Yes2 |
| SQL Support |
No |
Yes |
Yes |
| ACID Compliant |
No |
Yes |
Yes |
| Exploits EBS |
No |
Yes |
Yes |
| Supports MySQL applications without modification |
No |
Yes |
Yes |
| Dynamic Elasticity (w/o interrupting the application) |
Yes |
No |
Yes |
| High-Availability |
Yes |
No |
Yes |
| Eliminates Partitioning |
Yes |
No |
Yes |
| Eliminates possible 5-minute data loss upon failure |
Yes |
No |
Yes |
| Cluster-level load balancing |
Yes |
No |
Yes |
1The ScaleDB index delivers multi-table joins with the performance of a single table lookup using a technology that rivals materialized views but without the data synchronization headache.
2ScaleDB’s shared-disk architecture ensures data consistency across all nodes in the cluster.
ScaleDB is a storage engine that plugs into MySQL. It turns MySQL into a shared-disk DBMS, like Oracle RAC. ScaleDB, running on AWS provides elastic scalability, adding/removing nodes according to the number of database connections, all without interrupting any running applications. Also, because ScaleDB doesn’t rely on data partitioning-as you would with shared-nothing databases-the set-up and tuning are very simple.
SimpleDB and RDS are very good and they have their roles. However, I believe that ScaleDB is really the high-end solution, without the high-end price-that enterprise users of the cloud are looking for.
PlanetMySQL Voting: Vote UP / Vote DOWN