# A Performance Evaluation of In-Memory Databases Operations in Session Initiation Protocol
## 7 Conclusions  
SIP service providers, in order to manage their users' provisions (username, password, domain name, etc), have to deal with variant means of database machines. SIP can deal with MySQL, NoSQL, and/or in-memory databases, all depending on the server's implementation. However, typical MySQL databases are too costly, especially for real-time communication, like SIP. Therefore, variant alternative databases have been found to improve database connection by SIP server performance such as the in-memory database, which utilizes the key-value model. Most databases known in the industry and research community are Memcached, Redis, and Local (inside the SIP server). However, there are limited resources and studies regarding in-memory databases with SIP performance, and how each database affects the SIP server. This paper discusses the main impact of a key-value database on an SIP server during session setup in real-time communication. The paper evaluated the performance of SIP servers in different scenarios: single-client and multi-clients. The evaluation tests were conducted through read and write database operations under different parameters. The test examined memory usage, network throughput, and call response time. The general finding of this research is that the Local database consumes less memory than Memcached and Redis. Memcached consumes 6.61% of the memory. In addition, we found that Memcached costs the server only 0.56% memory of  
Figure 8: Memory usage with read operation (multi clients).  
Figure 9: Memory usage with write operation (multi clients).  
writing compared to the read operation. For throughput, the Local database, while processing fetch data, received 35.91 KB/s on the server side, which is the highest compared to other databases. Regarding response time, in store operation, the Local database spends 0.012 ms, 0.028 ms for Memcached, and 0.048 ms in Redis, which are all in the acceptable range. In summary, without persistency, a Local database is the best choice for SIP. Where persistency is considered, Memcached is a great choice here. Finally, if advanced data structure and rich features are required, Redis is a suitable selection for the future. Future work concerns wider database operations in cluster mode topology. In addition, a remote database server will be taken as a sharing in-memory database center for several nodes connecting.  
A.A.-A. and P.L.; methodology, A.A.-A., P.L., A.A.-A. and M.A.; validation, A.A.-A., P.L. and M.A.; formal analysis, A.A.-A., P.L., A.A. and M.A.; investigation, A.A.-A. and P.L.; data curation, A.A.-A. and P.L.; writing--original draft preparation, A.A.-A. and P.L.; writing--review and editing, A.A.-A., P.L., A.A. and M.A.; supervision, P.L. All authors have read and agreed to the published version of the manuscript.  
This research received no external funding.  
Not applicable.  
The authors declare no conflict of interest.  
The following abbreviations are used in this manuscript:  
\begin{tabular}{l l} CPS & Call per Second \\ CRT & Call Response Time \\ IETF & Internet Engineering Task Force \\ IMS & IP Multimedia Subsystem \\ IPv4 & Internet Protocol version 4 \\ IPv6 & Internet Protocol version 6 \\ LRU & Least Recently Used \\ MySQL & My Structured Query Language \\ NoSQL & Not Only Structured Query Language \\ RAM & Random Access Memory \\ RTP & Real-Time Transport Protocol \\ SDP & Session Description Protocol \\ SDP & Session Description Protocol \\ SHMEM & Shared Memory \\ SIP & Session Initiation Protocol \\ SIPp & SIP Performance \\ UAC & User Agent Client \\ UAS & User Agent Server \\ \end{tabular}