# A Performance Evaluation of In-Memory Databases Operations in Session Initiation Protocol
###### Abstract  
Real-time communication has witnessed a dramatic increase in recent years in user daily usage. In this domain, Session Initiation Protocol (SIP) is a well-known protocol found to provide trusted services (voice or video) to end users along with efficiency, scalability, and interoperability. Just like other Internet technology, SIP stores its related data in databases with a predefined data structure. In recent, SIP technologies have adopted the real advantages of in-memory databases as cache systems to ensure fast database operations during real-time communication. Meanwhile, in industry, there are several names of in-memory databases that have been implemented with different structures (e.g., query types, data structure, persistency, and key/value size). However, there are limited resources and poor recommendations on how to select a proper in-memory database in SIP communications. This paper provides recommended and efficient in-memory databases which are most fitted to SIP servers by evaluating three types of databases including Memcache, Redis, and Local (OpenSIPS built-in). The evaluation has been conducted based on the experimental performance of the impact of in-memory operations (store and fetch) against the SIP server by applying heavy load traffic through different scenarios. To sum up, evaluation results show that the Local database consumed less memory compared to Memcached and Redis for read and write operations. While persistency was considered, Memcache is the preferable database selection due to its 25.20 KB/s for throughput and 0.763 s of call-response time. SIP; in-memory; cache; NoSQL; memcache; Redis +
Footnote †: journal:  
0000-0001-4000-0000-0000-0000-0000-0000-0000-0000-0000-00000-00000-00000-00000-00000-00000-00000-000000-000000-000000-0000000000000000000000000000  
quality. One of the performance degradations is that the database obtains a penalty during real-time communication [6]. For this, the NoSQL in-memory database is an alternative solution to improve data retrieval by caching the important and most frequently used data in memory [7; 8]. In industry, there are over 25 NoSQL database systems deployed with different structures--to name a few, Memcached, Redis, Cassandra, Aerospike, Monogo, Hazelcast, Voldemort, RiakKV, etc. [9]. This research has selected three different cache database engines for evaluation, which are Local (OpenSIPS built-in) [10], Memcached [11], and Redis [12]. The selection is carried out based on a (1) Local cache engine deployed in a local shared memory in an SIP server (built-in). (2) Memcached is widely adopted by a range of Internet application companies (e.g., Facebook, Twitter, Zynga, and others) [13]. (3) Redis is also known to be utilized by Github, Snapchat, Weibo, and Flicker [14]. In particular, SIP (OpenSIPS) has already deployed the two databases as complete modules inside the server. Redis and Memcached are implemented inside the SIP server with high integrity and are well documented. By nature of the design, in-memory databases have different keys and value sizes, which yield various performance levels to SIP. In general, SIP technology uses this kind of database differently compared to web-based and cloud technologies. SIP only stores usernames/passwords during registration and retrieves (reads) them back for authentication. In other words, caching website components occurs in different ways of caching SIP data during real-time communication. The key problem in this research is that there are very limited guides or resources on how to select a recommended NoSQL database in SIP communication and how it affects SIP proxy performance. The aim of this paper is to provide the recommended and most efficient in-memory database technique most suitable to SIP. The paper provides an experimental performance study on the impact of in-memory operations (store and fetch) against the SIP server.