For years the Clustrix performance lab has been conducting performance benchmarks to assure ClustrixDB maintains its linear scalability in multiple environments, including the cloud. It’s been public knowledge for a while that ClustrixDB performs very well on Amazon Web Services (AWS), even scaling better than Aurora on AWS, particularly for heavy database loads requiring large clusters. For more on our performance tests on AWS, read Clustrix vs. Amazon Aurora Performance.
In our most recent performance testing, we wanted to see how the Google Cloud Platform (GCP) stacked up against AWS as a platform for ClustrixDB. We found that the Google Cloud Platform provides an excellent hosting service for those looking for an alternative to AWS. In fact, when comparing our recommended GCP configuration to the equivalent on AWS, the Google Cloud Platform delivered 7.5% better price/performance value.
The Google Cloud Platform Configuration for Clustrix Distributed Database
To be a good host for ClustrixDB, an instance type must have a balance between sufficient CPU, network, and disk capacity. On the Google Cloud Platform, we tested the following options:
- Standard server
- Highmem server (aka high memory)
- Highcpu server (aka high CPU)
- 8-core server
- 16-core server
- 32-core server
- Persistent SSD
- Persistent Standard (aka mechanical disk)
- Local SSD NVMe
- Local SSD SCSI
The GCP servers with an equivalent number of cores have the same CPU power, so in the Google Cloud Platform environment, the things that make the difference for ClustrixDB are disk and memory. As a result, we found that the best GCP configuration for ClustrixDB to be:
- Highmem server
- 16-core server
- Persistent SSD disk (1TB or larger)
- CentOS 7.4
- ClustrixDB 9.x
As usual, our tests were run using sysbench, an industry standard benchmark tool used to evaluate various system resources related to a database server; CPU, memory, I/O, etc. The read:write ratio was configured to be 90:10, which is typical of an OLTP application. The major things we look for are:
- Scale-out performance as you add new nodes or upgrade to servers with more cores.
In our performance curve test, results below, a workload is applied to a cluster using an external set of drivers. Each curve consists of multiple test points that are generated using one aspect of the workload as a variable. Typically in our testing, the variable is concurrency (i.e. number of concurrent streams). By increasing the number of streams, the load on the cluster is increased. As the workload increases the performance of the cluster transitions from increases in throughput to increases in latency as the cluster reaches its overall capacity. Graphically comparing throughput to latency results in a performance curve, from which two different test scenarios can be compared.
As usual, the ClustrixDB shared-nothing architecture delivered near-linear performance scalability as nodes were added to a cluster to increase database capacity. As you can see, a 16-node cluster with 16-core servers (256 cores total) achieved 70,000 TPS at 20ms latency. These are 90:10 transactions with 9 selects for every 1 update, therefore this represents 700,000 SQL/sec at approximately 2ms latency each.
NOTE: As nodes are added to a ClustrixDB cluster, database reads are not the only operation to benefit, which is the case in a traditional cloud database deployment. With ClustrixDB, writes also see an improvement in performance scalability for real-world OLTP applications that service reads and writes simultaneously.
GCP vs. AWS Price Performance
Our analysis showed that the Google Cloud Platform nodes delivered just under 8% better price/performance than the equivalent nodes on AWS. Both generate comparable database performance, but the n1-highmem-16 nodes are approximately 4% to 8% faster and are 2% less expensive (based on standard on-demand pricing) than the equivalent AWS nodes:
- The n1-highmem-16 nodes measured 3% faster than the equivalent AWS nodes
- The disk performance of the GCP node was better than the AWS node for small operations
- The GCP network provides more capacity than the AWS network, but is not tuned for the small packet size workload typical of a Clustrix OLTP workload, therefore AWS has the network advantage
In summary, GCP provides an excellent service for hosting ClustrixDB for those looking for an alternative to AWS. In fact, when comparing our recommended GCP configuration to the equivalent on AWS, the Google Cloud Platform delivers a better price/performance value.
In fact, Cloud Spectator came to a similar conclusion in favor of GCP in their report “2017 Best Hyperscale Cloud Providers: AWS vs Azure vs Google vs SoftLayer.” In that report, Cloud Spectator states that “Google achieves the highest CloudSpecs Score™ in the Top 4 cloud IaaS providers ranking. This is due to strong disk performance and the most inexpensive packaged pricing found in the study.” We encourage you to read the Cloud Spectator report for more insights.