Understanding the Concepts of Database Scalability, Elasticity, and Availability
A sustainable database and database management system (DBMS) must have scalability elasticity availability concepts. Since databases are business investments, it makes sense for organizations to want to grasp essential database concepts so they can make informed purchasing decisions.
Scalability is the ability of a database or DBMS to handle an increase or decrease of a workload without affecting its productivity
A scalable system is an adaptable one. This is important because workloads change from time to time. There are slow demands and higher demands which may or may not be predictable when they occur. Higher workloads require more processes without slowing down the system. A database or DBMS that is scalable should be able to grow with the company and handle varying workloads.
Upgrading a DBMS system is also beneficial if the system has the ability to be scaled up or down. In that case, when new hardware or software components are added to expand the system to better handle a larger workload, there’s minimal or no downtime. Productivity isn’t affected.
Elasticity is the capability of a database or DBMS to allocate available resources in the amounts needed for each service, no more, no less
If we understand that scalability deals with a database or DBMS’s ability to handle workloads, it is easier to comprehend that elasticity is how agile it is at accomplishing that task.
Throughout the day, a database processes a varying degree of workloads. To deal with data as quickly as possible, the system gives (provisions) resources and takes away (deprovisioning) resources based on the present demand. That’s elasticity. Resources go to and from in order to provide power as required to run services.
Missallocation of resources has a cost associated with it. Too little resources allocated results in slowed down performance. Application abandonment is common in that case. Too many resources allocated equates to waste. For cloud usage, there’s a cost assigned to all allocation regardless of how it is used. Because all databases deal with elasticity differently, it is worthwhile to know the degree of elasticity of a brand. Flexible databases that have manageable clustering and a high quantity change toleration are great traits of elasticity.
The availability of a database is the accessibility of it by end users
When a database has availability, its users have access to it. Software and hardware applications are included in the availability status too. The software must be able to access the database, if and when required. Business staff and customers will need to use the database if they are granted permission as well.
Four things directly influence the availability of a database or DBMS:
- Reliability – delivering service in a reliable way for a specific period
- Recoverability – recovering quickly when a component fails or disconnects from the server
- Manageability – managing the system environment effectively to ensure that service is delivered
- Serviceability – diagnosing and repairing problems so that service is only minimally disrupted and service can continue promptly
To recap, the availability of a database or DBMS must be accessible, reliable, recoverable, manageable, and serviceable.
Scale databases horizontally or vertically
Because scalability is one of the concepts of a major factor in a database or DBMS, it’s helpful to know databases can be scaled either horizontally or vertically. In some situations, a combination of the two works. Each separate option has pros and cons to consider.
Scaling out or scaling in is also referred to as horizontal scaling.
When new servers are added to a system, it’s called scaling out. Think of it as building the system outward.
If a system has hardware taken out, it’s called scaling in. A reduction in hardware makes the system smaller in components.
Making the determination to horizontal scale
One reason to horizontal scale is that hardware is more affordable due to its declining cost. Tasks that once could only be completed with huge computers can now be accomplished using economically priced commodity systems.
A database may be limited by its ability to scale though. In addition, typically in a traditional database environment, scaling is limited. Instead of 100 machines, it is two to three.
Horizontal scaling presents a challenge in system management afterward. The system is more complex after scaling. What’s more, some lag time could exist between the new and existing servers. One viable solution may be to purchase one higher-cost functional system instead of many lower-cost commodity boxes.
Scaling up or scaling down is referred to as vertical scaling.
In vertical scaling, adding a CPU that is more dynamic or adding more memory resources is called scaling up.
Taking away resources like memory or CPU power is referred to as scaling down.
Making the determination to vertical scale
A good reason to scale vertically is to improve system performance. The drawback is that during the implementation, there’s downtime. Software limitations and resource limitations are a concern as well. A system can handle only so much of each. Take for instance the model of the relational database management system (RDBMS), the traditional single-server type. Once limitations are reached, that’s it. No more improvements can be made by way of vertical scaling.
The cost to vertical scale depends on what is already available concerning hardware. Scaling up in vertical scaling can be pricey whether it’s hardware reconfiguring or investing. However, reconfiguring the hardware that’s already there will cost less than making a new investment in additional hardware.
Slowing down productivity may be a concern in vertical scaling. By the way, the downtime to upgrade the memory of a 256 GB is high. The procedure requires a small box to large box migration and purchase of the replacement box.
Understanding the concepts of database scalability, elasticity, and availability will help organizations invest wisely in their business equipment. It helps them to better serve their end users, including staff and customers with minimal downtime. Additionally, as businesses grow, horizontal scaling and vertical scaling are tasks that will likely be accomplished throughout the life of an organizational database. Know what is out there. Review some of the newer databases such as MongoDB and CockroachDB. They are well known for providing reliable scalability elasticity availability database performance.