Database server scalability is a common practice in use by IT departments today to help them cope with ever-growing databases and server requirements.
As data requirements grow, the number of server instances in use by businesses explodes, and the importance of stable and reliable IT systems increase, it’s no longer possible for businesses to cope with rigid, non-scalable systems and tools.
Making your database servers and solutions scalable isn’t necessarily a simple task, however, and there are two main variations of server scalability to take into account. In this article, we’ll outline the differences, pros and cons of horizontal and vertical scaling.
“Scaling out”, or Horizontal Scaling is the practice of adding more instances or servers, to spread out databases on more machines to deal with low capacity or increased demand”. When more capacity is needed in a system, DBAs can simply add more machines to keep up. In database terms, this means that data is often partitioned across the many machines that make up the cluster, with each individual server holding one part of the whole database. “Horizontally scaled servers can also make use of data replication, whereby one machine holds a primary copy of the entire database while the multiple other copies are used for read-only load.”
Horizontal scaling has several advantages over a vertical approach, particularly in terms of cost. Not only is establishing a scalable system easier this way, with individual nodes being cheaper than in a vertical set-up, but upgrades are also quicker and more affordable. Maintenance can be easier too, with faulty instances quickly switched out with minimal disruption to the rest of the system.
Conversely, a high number of instances adds complexity to a system, which can make monitoring, administration and troubleshooting harder and can increase recovery time from disasters. Licencing fees can also be much higher under a horizontal system if machined are licensed individually, and the physical space needed to house multiple servers can also bring cost and logistical issues.
Vertical scaling, or “scaling up”, involves adding more resources to a smaller number of server instances - the opposite approach to a horizontal system. Through increasing CPU resources, memory and storage or network bandwidth, performance of every individual node can be improved, scaling even the smallest servers to handle large databases.
Compared to horizontally scaled servers, this offers the advantage of being much easier to establish and administer - as it is just a small number of machines, or even just one. Vertical systems can also offer advantages in terms of stability, reliability and development, and cost savings through being suitable for smaller data centres and licence costs being lower.
Vertically scaled systems do come with some disadvantages though. Not only can initial hardware costs be high due to the need for high-end hardware and virtualisation, but upgrades can be both expensive and limited - there is, after all, only so much you can add to one machine before it is still outgrown by your database. Normally clustering like Always On or RAC is applied to these large servers to make them reliable and with enough capacity to handle the load.
You may also find yourself quickly ‘locked-in’ to a particular database vendor by following this strategy, and moving away from that vendor later could mean very expensive server upgrades.
As database requirements continue to grow, your organisation will need to adopt a form of scalability in order to keep up. While horizontal scaling is widely considered to be the modern, flexible approach, and certainly does have some advantages, it can bring some unwanted complexity into your IT infrastructure.
Vertical scalability brings complexity, horizontal scalability brings logistical challenges. In either case good tools for monitoring, analysis and administration can reduce the challenges and help you deliver greater productivity and performance and keep costs in check.