چکیده
محبوبیت پایگاههای دادهی NoSQL با توجه به نیاز به 1) پردازش حجم عظیمی از دادهها سریعتر از سیستمهای مدیریتی پایگاه دادهی ارتباطی با استفاده از مزیت معماری بسیار مقیاسپذیر، 2) ساختار دادهی انعطافپذیر (بدون طرحواره)، و 3) تاخیر (نهفتگی) کم و عملکرد بالا، افزایش یافته است. با وجود این که مصرف از حافظه، معیار مهمی برای ارزیابی عملکرد الگوریتمها نیست، از آن جایی که این پایگاههای داده برای دادههای از حافظه به کار میروند، در این مقاله، مصرفهای آنها نیز در کنار زمان صرف شده برای تکمیل هر عملیات به منظور نشان دادن این که کدام یک به طور موثرتری از حافظه استفاده میکند آزمایش میشوند. در حال حاضر بیش از 225 پایگاه دادهی NoSQL وجود دارند که دارای ویژگیهای مختلفی هستند. بنابراین لازم است آشکار شود که کدام پایگاه داده، عملکرد بهتری را برای عملیات مختلف دادهها فراهم میکند. ما در این مقاله به بررسی پایگاههای دادهی in-memory با کاربرد گسترده برای سنجش عملکرد آنها در زمینهی 1) زمان صرف شده برای تکمیل عملیات، و 2) میزان کارامدی استفاده از حافظه در طول عملیات توسط آنها میپردازیم. همانطور که نتایج گزارش شده در این مقاله نشان میدهند، هیچ پایگاه دادهای وجود ندارد که بهترین عملکرد را برای همهی عملیات دادهها فراهم کند. همچنین ثابت میشود که اگرچه یک RDMS، دادههای خود را در حافظه ذخیره میکند، عملکرد کلی آن بدتر از عملکرد پایگاه دادههای NoSQL است.
1. پیشگفتار
دلایل کلیدی برای در نظر گرفتن «مکانیسم ذخیرهسازی دادهها» به عنوان قلب سیستمهای نرمافزاری سازمانی را میتوان به این صورت فهرست کرد: 1) آن، مهمترین بخش نرمافزارهای تعیین کنندهی میزان سرعت پاسخ یک برنامهی کاربردی به یک درخواست است؛ و 2) از دست دادن دادهها عمدتا با توجه به عملیات تجاری کلیدی، غیر قابل قبول است. پیش از ظهور پایگاههای دادهی NoSQL (نه تنها SQL)، سیستمهای مدیریت پایگاه دادهی ارتباطی (RDMS)، تنها جایگزین انحصاری بودند. اگرچه، با رشد پیوستهی دادههای ذخیره شده، محدودیتهای سیستمهای پایگاه دادهی ارتباطی، مانند مقیاسپذیری و ذخیرهسازی، و کاهش موثر جستار به دلیل حجمهای زیاد دادهها، و ذخیرهسازی و مدیریت پایگاههای دادهی بزرگتر، چالش برانگیز میشوند. هنگام نوشتن، بیش از 225 پایگاه دادهی NoSQL وجود دارند که ویژگیهای مختلفی را فراهم میسازند. پایگاههای دادهی NoSQL، در مقایسه با پایگاههای دادهی RDMS، به لحاظ افقی انعطافپذیرتر و مقیاسپذیرتر هستند. برای پردازش سریع حجمهای زیادی از دادهها با استفاده از مزیت معماری توزیع شده و ساختار بدون طرحوارهی دادهها، پایگاههای دادهی NoSQL، به پایگاههای دادهی RDMS ترجیح داده میشوند. همچنین عملکرد پایگاههای دادهی RDMS با افزایش در اندازهی دادهها، که موجب مسائل همزمان بودن و وقفهها میشود، کاهش مییابد. در حالی که RDMS بر مدل سازگاری ACID (اتمی بودن، سازگاری، انزوا (جدا بودن)، ماندگاری )، که تضمین میکند که همهی تراکنشها به درستی انجام میشوند و پایگاه داده مختل نمیشود، تکیه دارد، پایگاههای دادهی NoSQL بر اساس مدل سازگاری BAS (اساسا قابل دسترس، حالت-نرم، سرانجام سازگار ) برای دستیابی به مقیاسپذیری، قابلیت دسترسی بالا، و عملکرد بالا هستند. پایگاههای دادهی NoSQL به منظور افزایش سرعت جستار، به جای حافظهی غیر-فرار (یعنی هارد دیسک)، از حافظهی فرار (یعنی حافظهی دسترسی تصادفی – RAM) استفاده میکنند زیرا دسترسی دادههای I/O (ورودی/خروجی)، پایین است.
ادامهی مقاله به صورت زیر سازماندهی میشود: بخش 2 به توصیف کلاسهای پایگاههای دادهی in-memory و تفاوتهای آنها میپردازد. بخش 3، کارهای مربوطه را ارائه میدهد. بخش 4 به راهاندازی تجربی ارائه شده میپردازد. بخش 5، نتایج تجربی و بحث را ارائه میدهد. در نهایت، بخش 6، مقاله را نتیجهگیری میکند.
Abstract
The popularity of NoSQL databases has increased due to the need of (1) processing vast amount of data faster than the relational database management systems by taking the advantage of highly scalable architecture, (2) flexible (schema-free) data structure, and, (3) low latency and high performance. Despite that memory usage is not major criteria to evaluate performance of algorithms, since these databases serve the data from memory, their memory usages are also experimented alongside the time taken to complete each operation in the paper to reveal which one uses the memory most efficiently. Currently there exists over 225 NoSQL databases that provide different features and characteristics. So it is necessary to reveal which one provides better performance for different data operations. In this paper, we experiment the widely used in-memory databases to measure their performance in terms of (1) the time taken to complete operations, and (2) how efficiently they use memory during operations. As per the results reported in this paper, there is no database that provides the best performance for all data operations. It is also proved that even though a RDMS stores its data in memory, its overall performance is worse than NoSQL databases.
1. Introduction
The key reasons behind regarding ‘‘data storage mechanism” as the hearth of enterprise software systems can be listed as: (1) it is the most major part of softwares that determines how quick an application responds a request, and (2) the loss of data is mostly unacceptable since the key business operations. Until the rise of NoSQL (Not-only SQL) databases, the relational database management systems (RDMS’) were the sole and exclusive remedy. However, with the constant growth of stored data, the limitations of relational database management systems such as scalability and storage, and efficiency losing of query due to the large volumes of data, and the storage and management of larger databases become challenging (Abramova et al., 2014). At the time of writing, there exists over 225 NoSQL databases that provide different features and characteristics (Edlich, 2016). NoSQL databases are more horizontally scalable and flexible when they are compared to RDMS’ (Stonebraker, 2010). When it comes to processing vast amounts of data quickly taking the advantage of schema-free data structure and distributed architecture, NoSQL databases are preferred instead of RDMS’ (Bartholomew, 2010; Li and Manoharan, 2013). Also, performance of RDMS’ decrease with increase in size of data, which causes deadlocks and concurrency issues (Han et al., 2011). While RDMS relies on ACID (Atomicity, Consistency, Isolation, Durability) consistency model that ensures all the transactions are correctly committed and do not corrupt database, and the data are consistent, NoSQL databases are based on BASE (Basically Available, Soft-state, Eventually Consistent) consistency model in order to achieve scalability, high availability, and high performance (Bartholomew, 2010; Carro, 2014; Cook, 2009; Gajendran, 2012; Pritchett, 2008). NoSQL databases serves the data from volatile memory (i.e. random access memory – RAM) instead of non-volatile memory (i.e. hard drive) in order to increase the speed of querying since I/O (Input/Output) data access is slow (Abramova et al., 2014).
The rest of the paper is organized as follows: Section 2 describes categories of in-memory databases and their differences. Section 3 presents related works. Section 4 discusses the proposed experimental setup. Section 5 presents the experimental results and discussion. Finally, Section 6 concludes the paper.
چکیده
1-پیشگفتار
2. پایگاههای دادهی NoSQL
3. کارهای مربوطه
4. تنظیم تجربی
5. نتایج تجربی و بحث
5.1. آزمایش 1 – عملکرد برای نوشتن زوج کلید-ارزش
5.2. آزمایش 2 – عملکرد برای خواندن ارزش متناظر با یک کلید ارائه شده
5.3. آزمایش 3 – عملکرد برای حذف زوج کلید-ارزش متناظر با یک کلید ارائه شده
5.4. آزمایش 4 – عملکرد برای واکشی همهی دادهها
6. نتیجهگیری
Abstract
1. Introduction
2. NoSQL databases
3. Related works
4. Experimental setup
5. Experimental results and discussion
5.1. Experiment 1 – performance to write a key-value pair
5.2. Experiment 2 – performance to read value corresponding to a given key
5.3. Experiment 3 – performance to delete key-value pair corresponding to a given key
5.4. Experiment 4 – performance to fetch all the data
6. Conclusion