Give Your Graph Workload a Cost-Performance Boost with Neo4j and AWS Graviton
By Lee Razo, Sr. Cloud Partner Architect – Neo4j
By Stuart Moore, Product Manager Core Database – Neo4j
By Antony Prasad Thevaraj, Sr. Partner Solutions Architect – AWS
AWS Graviton processors are designed to deliver the best price performance for your cloud workloads running in Amazon Elastic Compute Cloud (Amazon EC2) and the most cost-effective and performant choice for graph database workloads running Neo4j.
Tests have shown that deploying Neo4j with AWS Graviton-based instances results in cost savings of up to 15% as well as a boost for write performance of up to 146% over equivalent Intel-based instances.
In this post, we describe and review our test results and discuss the cost-performance benefits of deploying Neo4j with AWS Graviton3 instances and the Amazon Corretto Java virtual machine (JVM) to support graph workloads at scale in an efficient, performant, and cost effective manner.
Neo4j is an AWS Data and Analytics Competency Partner and AWS Marketplace Seller which defined the graph database space and open-source standards. Learn more about Neo4j and graph databases in the AWS blog post covering when to use a graph database like Neo4j on AWS.
About AWS Graviton
AWS Graviton processors are designed by Amazon Web Services (AWS) to deliver the best price performance for your cloud workloads running in Amazon EC2.
AWS Graviton3 processors are the latest in the AWS Graviton processor family. They provide up to 25% better compute performance, up to 2x higher floating-point performance, and up to 2x faster cryptographic workload performance compared to AWS Graviton2 processors.
AWS Graviton3 processors deliver up to 3x better performance compared to AWS Graviton2 processors for machine learning (ML) workloads, including support for bfloat16. They also support DDR5 memory that provides 50% more memory bandwidth compared to DDR4.
AWS Graviton3E processors deliver up to 35% higher vector-instruction performance compared to AWS Graviton3 processors. This improvement provides higher performance benefits for HPC applications.
About the Tests Covered in This Post
For our comparison, we deployed Neo4j Enterprise Edition v5.5 with default settings and Amazon Corretto 17 JVM on one Intel-based r6i.16xlarge EC2 instance and one Graviton-based r7g.16xlarge instance. Each instance used a 2TB Amazon Elastic Block Store (Amazon EBS) GP2 volume provisioned with 30,000 IOPS.
Neo4j recommends EBS disks on AWS, both for performance and convenience in the cloud. These were used in our tests, but note that some workloads may require greater disk throughput; in these cases, NVMe disks can be a good option.
If opting for NVMe, there are two OpenJDK bugs to be aware of (JDK-8305670 and JDK-8305994) which will impact performance and are still open at the time of this writing. Both are scheduled to be fixed in version 21 and backported to earlier versions.
Figure 1 – Neo4j Enterprise Graviton (Arm-based) and Intel (x86-based) analysis.
In order to evaluate and compare performance characteristics, we tested two different workload profiles using a popular and publicly available social media workload. We obtained the following results:
- Read-intensive workload: 64 concurrent threads performing reads which were a mixture of short read queries (lookup a single node/relationship) and long reads (which span large subgraphs).
- Write-intensive workload: 48 concurrent threads performing writes that create single entities in a transaction (property/relationship/node) which requires a short read to be performed before to lookup nodes/relationships.
A single test run consisted of running the workloads on each of the instances for a duration of 60-70 minutes. We repeated this five times and observed the average read throughput was 13% faster on Graviton compared to the comparable Intel instance. The average write throughput was 146% faster on Graviton. We attribute this to Graviton’s design, which is optimized to manage high levels of concurrent workloads.
|Instance type||Read throughput (IOPS)||Write throughput (IOPS)|
In addition to the performance advantages, Graviton-based instances come with a cost savings of 15% over comparable Intel-based instances.
At the time of our testing, the hourly on-demand pricing for Intel-based r6i.16xlarge and Graviton-based r7g.16xlarge instances was $4.032/hr and $3.427/hr, respectively, in the us-east-2 region. Taking performance into consideration, the result is an overall cost-performance boost of between 32-189% depending on the workload profile.
|Instance type||Value for reads (IOPS-price)||Value for writers (IOPS/price)|
Combining Neo4j with AWS Graviton3 compute instances using Amazon EBS provides a few major benefits:
- Significant performance boost of 13-146% depending on your workload profile.
- Overall cost savings of 15% over equivalent Intel-based Amazon EC2 instances regardless of your workload profile.
- Overall cost-performance boost of 32-189%
As your artificial intelligence (AI) and data analytics workloads scale up, Neo4j and AWS Graviton provide the foundation to scale your EC2 compute instances in a highly performant and cost-effective manner.
Neo4j – AWS Partner Spotlight
Neo4j is an AWS Data and Analytics Competency Partner that enables organizations to unlock the business value of connections, influences, and relationships in data.