Running Relational Databases in Public Cloud Environments
Recently, relational databases with their ACID support and static schemas have come under fire, with many believing they have reached their limits. This position is often promoted in the context of public clouds, where relational databases are problematic to say the least. Instead, it is claimed we need new databases, design especially for the cloud. These new databases will support:
- Dynamic resource use, where the database can allocate and deallocate new resources when needed, as a means to optimize costs and scaling.
- Self-healing, which reduces the risk of data loss when part of the system fails.
- Multi-tenancy, which enables the database to support multiple customers simultaneously, without the risk of compromising data.
All of these factors are crucial requirements for cloud databases. However, they do not necessarily imply that new database software is required in order to run in a cloud environment. This is especially important since replacing a database has tremendous implications. Here are a few reasons why:
- Databases have a complete ecosystem around them for monitoring, backup, tuning and so on. Replacing a database requires that system administrators (and DBAs) learn new technology.
- Code modifications and a complete QA cycle would be needed. Each database requires enhancements to the standard SQL language and applications rely on these enhancements. Therefore, they would need to be changed to support the SQL flavor of the new database – if these new databases support the full SQL language at all.
These issues are painful for both new and existing applications. For example, converting a 10 year old application written in Java from Oracle to another database is not an attractive option. Even writing a new application with an ORM that does not support your new database can be a painful task.
This is the key problem we identified when founding ScaleBase. Relational databases are very popular, but they are not truly cloud ready. Their scale and availability in cloud environments is poor, and they require ACID. However, the reliability and other well-known benefits of existing databases should be promoted and not disregarded.
And this is why we developed the ScaleBase Database Load Balancer – our unique solution that enables any existing relational database to work in cloud environments. Any database can operate in the cloud and enjoy its benefits. All you have to do is to place the ScaleBase solution in front of it!
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)