Regardless of your data models, you’ll still need to be able to manage the data. Keeping your records organised manually would require an extensive amount of time and effort. Fortunately, many of the modern databases work well together with an integrated database management system or DBMS for short.
This is our third post for the series about databases in the cloud. We’ll be looking into database management systems, their benefits and performance. If you haven’t read the previous posts in the series, feel free to check out the benefits of cloud infrastructure and cloud-native approach.
Benefits of management systems
By design, DBMS provides a unified way for users and applications to create, read, update, and manage data stored on your server. Management software is often used in conjunction with databases to serve as a user-friendly interface for the end users and applications.
When operating a database, you will need to take care of more than just the data itself. Part of the task is maintaining the database engine and the schema it follows. A database management system can handle all of that for you.
DBMS creates data abstraction level that allows applications to work independently from the database structures. Due to the benefits of abstraction, DBMS can enhance data integrity and security, and provide locking mechanisms for concurrent access.
Furthermore, with a proper approach to data security, DBMS can also be used to facilitate effective access control. As such, they are often used to manage centralised access to the data. Thanks to efficient scaling, it can allow a practically unlimited number of concurrent users in a controlled and secure manner.
Many of the modern database software includes a management system of some kind. One of the most popular examples of well-versed DBMS comes with PostgreSQL. As a popular database option, it has been thoroughly benchmarked on a number of cloud providers.
One such great benchmark comes from Aiven, who provide fully-hosted and managed cloud database and messaging services on all major cloud providers across the globe. So as experts in all things database, they are able to provide a good insight into database performance in the cloud.
The benchmark compared two different instance sizes with common configurations. All servers utilised the network-backed freely scalable storage that is available on each of the compared cloud providers.
- 4 vCPU / 16GB RAM / 350 GB
- 16 vCPU / 64GB RAM / 1 TB
They benchmarked five cloud providers using the trusted pgbench tool included in PostgreSQL installs. The graph below represents the number of transactions per second. Each database was run with 16 concurrent clients for one hour. The test data set was roughly three times the available system memory on the servers to rule out caching.
16 GB RAM instances with network storage
The results show clearly the difference between providers. While most of the providers show similar results between data centres, the peak performance at our Frankfurt DC represents the best outcome in a public cloud without arbitrary limitations.
Of course, a public cloud has the drawback of shared resources. This can be seen in the differences between locations at UpCloud and Digital Ocean. Consequently, if you are likely to need very high performance for extended periods at the time, you should consider the Private Cloud.
Aiven’s second test on a more powerful server configuration can be seen in the graph underneath.
64 GB RAM instances with network storage
They saw a very similar performance on AWS, Google Cloud and UpCloud as in the previous test. In contrast, Azure and Digital Ocean managed far better on a larger server. This could indicate limited storage performance on smaller instances. However, UpCloud and Google Cloud are still way above the rest.
The test servers were configured using the same Linux 4.3.15 kernel and PostgreSQL version 10.0. Also, LUKS full disk encryption and WAL archiving were enabled to include the overhead of backups in the benchmark. You can read the full story at their blog post over at Medium.
The advantages of a database management system are very enticing. Data security is at the top of the list of concerns for anyone privacy conscious and the user-friendly approach will help everyone.
While a good DBMS provide many benefits, they also come with an added overhead in memory and CPU utilisation when compared to simpler solutions. Therefore, being able to objectively asses database performance is an important step towards picking the best solution for your use case.
However, any additional costs from increased resource needs could be easily recouped. The reduced manual labour and time spent on management can save you money by employing efficient use of a DBMS.
Knowledge is power and we want to empower you with the information to find the best solution for your database. This post was the third in our series on databases in the cloud but we have still more to come. Check back later to learn about database-as-a-service and how it could help your project.