# Performance Evaluation of NoSQL Document Databases: Couchbase, CouchDB, and MongoDB
## 5 Experimental Results
### Couchbase  
Table 2 presents the runtime of Couchbase, for all workloads, with 100,000 records, 1,000,000 records, and 10,000,000 records. Due to the lack of space, only the running time of the Couchbase with three threads is presented. Using Couchbase, workload E, with 100,000 records and 1,000,000 records, is the workload with the longest runtime because it is mostly composed of scan operations. On the other hand, with 10,000,000 records, the workloads with the longest execution time were A and F. Workload A is composed of read and update operations, and workload F is composed of read-modify-write operations. For all records used, workload C had the shortest runtime because this workload is composed only of read operations.  
Table 3 presents all the runtime values (in seconds) for all the workloads used in Couchbase (Workload A,..., Workload H). From these results, it was possible to conclude that:  
* Considering 100,000 records, we see that increasing the number of threads to three reduced the runtime almost in half;  
\begin{table}
\begin{tabular}{c c c c} \hline \hline
**Couchbase** & **100,000 Records** & **1,000,000 Records** & **10,000,000 Records** \\ \hline Workload A & 10.28 s & 1037.79 s & 85,910.67 s \\ Workload B & 9.27 s & 687.31 s & 33,770.34 s \\ Workload C & 6.72 s & 80.34 s & 3423.30 s \\ Workload D & 12.01 s & 201.87 s & 29,839.63 s \\ Workload E & 373.08 s & 3288.45 s & 34,028.25 s \\ Workload F & 33.16 s & 2822.24 s & 47,416.49 s \\ Workload G & 20.63 s & 523.50 s & 6905.86 s \\ Workload H & 22.88 s & 83.78 s & 1078.91 s \\ \hline \hline \end{tabular}
\end{table}
Table 2: Runtime of Couchbase with 3 threads.  
* Considering the experiments with 1,000,000 records, we verified that by increasing the number of threads from one to three, the runtime decreased by more than half. However, when we modify from three to six threads, the runtime does not halve, only decreasing by 40%. This occurs because the computer used supports only six threads and has other processes running in addition to the experimental process. Thus, Couchbase does not take full advantage of all available threads;
* Taking into account 10,000,000 records, we see that as the number of threads increased, the runtime decreased by almost 60% each time the number of threads was incremented;
* When increasing from 100,000 to 1,000,000 records, we expected the runtime increase to be 10 times; however, there was an increase of 18.3 times. This increment can be explained by the limitations of computer hardware with a single physical processor and also by the use of computer resources by other processes running at the same time;
* When moving from 1,000,000 records to 10,000,000 records, we expected the runtime to increase 10 times since the workload also increased 10 times; however, there was a 23 times increase. This 23-fold increase is due to the fact that the workload was higher; therefore, more disk accesses had to be made, which made runtime much slower;
* When increasing from 100,000 records to 10,000,000 records, the runtime increases 421.3 times, when the expected increase would be 100 times since the workload also increased 100 times. This growth is explained by the limitations of computer hardware.