# Experimental Evaluation of Graph Databases: JanusGraph, Nebula Graph, Neo4j, and TigerGraph
## 5 Experimental Evaluation
### Experimental Results
Figure 9 also shows the average query execution time (ms) for a scale factor of 1 for each graph database. Compared to the previous scale factors, at a scale factor of 1, there is a significant increase in short queries with many nodes being the most important ones. As the scale factor increases, so does the size of the data and associated relationships. In this case, the short queries also request information about specific nodes, the number of which increases dramatically along with the scale factors. As a result, the execution time of the short queries also increases significantly. Neo4j again has the shortest execution time, followed by TigerGraph, JanusGraph, and Nebula Graph. Figure 10 shows the average execution time of queries in each graph database for a scale factor of 3. It is possible to see high average execution times for short queries because they request data in a larger number of nodes. These average times are higher than those shown for a scale factor of 1. For this scale factor, Neo4j is again in first place, followed by TigerGraph, JanusGraph, and Nebula Graph. Figure 8: Query runtime in milliseconds for SF = 0.3. Figure 9: Query runtime in milliseconds for SF = 1. Figure 11 shows the average query execution time (ms) in each graph database for SF 10. Neo4j continues to have the shortest execution time, followed by TigerGraph, JanusGraph, and Nebula Graph. At this scaling factor, the data size increased significantly from about 3 gigabytes to about 12 gigabytes. As mentioned earlier, some entities have a larger number of nodes, and the queries involving these entities require more execution time, which is the case for all short queries. Note that for short queries 1 and 2, there was a significant increase in execution time for the Nebula Graph, which is a limitation for queries involving large amounts of data. The average query execution times for the four graph databases at each scale factor are shown in Table 3. \begin{table}
\begin{tabular}{c c c c c} \hline \hline  & \multicolumn{4}{c}{**Average Query Execution Time (ms)**} \\ \cline{2-5}  & **JanusGraph** & **Nebula Graph** & **Neo4j** & **TigerGraph** \\ \hline SF = 0.1 & 127,589.8 & 164,704.8 & 9969.2 & 111,976 \\ SF = 0.3 & 286,794.4 & 348,832.4 & 111,702.6 & 231,727.6 \\ SF = 1 & 1,307,342.2 & 1,519,484.8 & 133,962.2 & 1,029,613.0 \\ SF = 3 & 1,480,037.0 & 1,811,953.8 & 167,391.2 & 1,099,737.6 \\ SF = 10 & 1,453,228.8 & 2,249,980.2 & 1,034,978.2 & 1,185,218.2 \\ _Total_ & _77.58 min_ & _101.58 min_ & _24.30 min_ & _60.97 min_ \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Average query execution time (ms) in each graph database. Figure 10: Query runtime in milliseconds for SF = 3. Across all scale factors, Neo4j stood out with a lowest average query execution time of just 24.30 min. It was followed by TigerGraph, with took more than twice as long as Neo4j. In third place was JanusGraph, with three times the time of Neo4j, and finally Nebula Graph, with more than four times the time of Neo4j. The records of average CPU usage records for query execution are shown in Table 4. Neo4j was the database with the lowest average CPU usage, with a value of 26%, followed by TigerGraph with 37%, then JanusGraph with 41%, and Nebula Graph with 48%. Figure 12 shows the execution time for all of the queries and all of the scale factors for each of the graph databases. Nebula Graph consumed much more CPU than Neo4j, almost twice as much; it uses a lot of the processing power that the computer has available. This difference allows Neo4j to execute queries at all scaling factors without using all the processor's capacity. The average RAM consumption for all queries' execution is presented in Table 5. Neo4j had the lowest average RAM consumption with 42%, followed by TigerGraph at 51%, JanusGraph at 49%, and Nebula Graph at 62%.