Database Scalability for Relational Databases
Database scalability is the ability to scale out or scale up a database to allow it to hold increasing amounts of data without sacrificing performance. Scaling out often involves sharding the database across multiple database servers while scaling up involves increasing the computing power and resources of the database server.
Many relational databases (RDBMS) such as Oracle, MySQL, Postgres or SQL Server are designed to run on a single server. As the size of a relational database grows, organizations may run into performance issues with their infrastructure and database technology due to database scalability challenges. When they begin to experience issues, organizations typically first scale up the database server. If their database continues to grow and performance degrades on the largest database servers they can afford, the next step they may consider is to move to a higher performance database technology, often at a much higher cost.
Many organizations decide against changing database technologies. They instead explore distributed database solutions to address their database scalability challenges. For relational databases, the typical approach is to shard the database and distribute it across multiple database servers. Organizations often try to shard their database with code created in-house, which can be difficult and expensive to maintain.
In-Memory Computing for Database Scalability
As an alternative to manual sharding, there are solutions available which can scale out relational databases. For example, in-memory computing platforms such as GridGain® are distributed computing platforms built on in-memory file systems. These solutions can automatically shard the underlying relational database while simultaneously moving it into memory, providing both database scalability as well as high performance. Well designed in-memory computing solutions may include ACID transaction compliance and ANSI-99 SQL support including DML and DDL capabilities.
The GridGain in-memory computing platform was designed from the ground up as a distributed computing solution. GridGain is inserted between the existing application and database layers and is deployed on a cluster of servers. New servers can be added to the cluster at any time and the system will automatically rebalance the data to take advantage of the new resources.