در حال حاضر برخی سازمانها به ارائه پایگاهدادههای In-Memory برای طیف گستردهای از فعالیتها میپردازند. در این مقاله به بررسی تکنولوژی In-Memory در اوراکل و IBM و SQL میپردازیم.
مفهوم تکنولوژی In-Memory در پایگاهداده اوراکل
تکنولوژی In-Memory در پایگاهداده اوراکل به عنوان یک گزینه جدید برای پایگاهداده اوراکل 12c محسوب میشود. در واقع این تکنولوژی به عنوان یک Add-On انتخابی برای پایگاهداده اوراکل 12c به شمار رفته و این امکان را برای نرمافزار رابطهای اصلی این شرکت فراهم مینماید تا به عنوان یک پایگاهداده In-Memory عمل نماید. Oracle Database In-Memory میتواند بر روی همه پلتفرمهای اجرا شده و در پایگاهداده اوراکل 12c فعال شود. اوراکل به محصول مجزایی مانند Oracle TimeTen برای In-Memory OLTP نیاز دارد که به طورکامل در پایگاهداده اصلی ادغام نگردد.
بررسی IBM DB2 BLU Acceleration
IBM DB2 BLU Acceleration که توسط مرکز تحقیق و توسعه شرکت IBM ارائه گردیده است، به عنوان یک ویژگی جدید برای In-Memory مطرح میگردد که با IBM DB2 10.5 ادغام شده است. این تکنولوژی از ساختارهای حافظه و ذخیرهساز مشابهی همچون گروههای ذخیرهساز، فضاهای جدولی، Poolهای بافر و موارد دیگری از جمله واسطهای کاربری زبان SQL و ابزارهای اجرایی مانند DB2های قدیمی استفاده مینماید. IBM DB2 BLU Acceleration، یک پیادهسازی In-Memory Columnstore است که برای انبارهای داده و برنامههای کاربردی تحلیلی مناسب میباشد.
مقایسه ویژگیهای در تکنولوژی In-Memory در پایگاهدادههای مختلف
در ادامه این مقاله در این قسمت و قسمتهای آتی به ارائه مقایسه بین ویژگیهای این تکنولوژی در انواع مختلف دیتابیسها خواهیم پرداخت.
پایگاهداده اوراکل
در حال حاضر پایگاهداده اوراکل به ارائه پشتیبانی Native از قابلیت In-Memory در رابطه با بارهای کاری OLTP نمیپردازد اما از این قابلیت به عنوان یک Add-On انتخابی همراه با پایگاه داده اوراکل 12c جهت آنالیز بارهای کاری پشتیبانی مینماید. اوراکل همچنین قابلیت In-Memory را به صورت مستقل برای محصولی مجزا به نام TimesTen ارائه مینماید که با پایگاهداده اوراکل ادغام میشود اما در عین حال دو محصول متفاوت به شمار میروند که نصب و مدیریت آنها به صورت جداگانه صورت میگیرد.
بررسی تکنولوژی In-Memory OLTP در Oracle TimeTen
TimeTen به عنوان یک پروژهی سیستم پایگاهداده رابطهای In-Memory در سال 1995 در شرکت HP آغاز شد و سپس به یک شرکت مستقل تبدیل شد. TimeTen در سال 2005 به مالکیت اوراکل درآمد و از آن پس اقداماتی در خصوص ادغام آن با Oracle Stack شامل Pl/SQL/ OCI Stack و MAA (معماری با حداکثر دسترسی) صورت گرفت. این تکنولوژی را میتوان به روشهای زیر پیادهسازی نمود:
- واسط کاربری سرور و Client:
از واسطهای کاربری قدیمی برای سرور و Client پشتیبانی شده و سناریوهایی مانند گزارشگیری و دسترسی به پایگاههای داده معمول In-Memory برای تعداد زیادی از پلتفرمهای Application-Tier ایجاد میشود.
- برنامههای کاربردی دارای ارتباط مستقیم با یکدیگر:
برنامههای کاربردی را میتوان به طور مستقیم با فضای آدرس TimeTen مرتبط نمود و بدین ترتیب Overhead یا سرریز IPC را حذف کرد و روند پردازش Query را برای عملکرد بهینه آن ساده ساخت.
- Cache برای پایگاهداده اوراکل (TimeTen Cache):
در صورت وجود یک پایگاهداده اوراکلی مختص به یک بارکاری، میتوان TimeTen را به عنوان یک لایه اضافی از Cache پایگاه داده بین برنامه کاربردی و پایگاهداده اوراکل پیادهسازی نمود. جدولهای Cache در این لایه میانی ممکن است به صورت Read-Only یا دارای قابلیت بهروزرسانی باشند. برنامههای کاربردی با استفاده از یک واسط کاربری استاندارد SQL به جدولهای TimeTen Cache دسترسی داشته و فرآیند هماهنگسازی بین این جدولهای Cache و پایگاهداده اوراکل به صورت خودکار اجرا میشود.
مقایسه In-Memory OLTP در اوراکل و SQL Server
Oracle TimeTen یک محصول نسبتا قدیمی میباشد، در حالی که In-Memory OLTP در SQL Server از برخی پیشرفتهای صورت گرفته در تکنولوژی بهرهمند شده و در بسیاری از موارد به یک مجموعه ابزار فوقالعاده تبدیل شده است. در جدول زیر مقایسهای بین ویژگیهای Oracle TimesTen، SQL Server 2014 In-Memory OLTP و SQL Server 2016 In-Memory OLTP صورت میگیرد که در آن Surface Area بیشتری از زبان SQL را در خصوص ویژگی تداومپذیری بیشتر و گردآوری به صورت Native اضافه مینماید.
ویژگی | TimesTen | SQL Server 2014 | SQL Server 2016 |
زبان SQL | پشتیبانی از اکثر PL/SQLها مانند DW | پشتیبانی InterOp از اکثر OLTPها | افزایش Surface Area در T-SQL |
کامپایل نمودن به صورت Native | خیر | بله، Surface Area در T-SQL که بارهای کاری OLTP را هدف قرار میدهد. | افزایش Surface Area در T-SQL |
مبتنی بر Lock | بله، ردیف، جدول، قفلهای پایگاهداده، انتخاب در سطح اتصال | خیر، استفاده از کنترل همزمانی خوشبینانه | بدون تغییرات جدید |
یکپارچهسازی (Integration) | یکپارچهسازی ضعیف با پایگاهداده اوراکل | یکپارچهسازی کامل با SQL | بدون تغییرات جدید |
تداومپذیری (Durability) | در سطح پایگاهداده (پایگاهداده موقت و دائمی) | در سطح جدول، تمامی جداول به صورت پیشفرض دارای قابلیت تداومپذیری میباشند اما هر یک از جدولهای جداگانه را میتوان به تنهایی غیرقابل تداوم در نظر گرفت. | 2 ترابایت حافظه تداومپذیر که جداول پایگاهداده را بهینه مینماید. |
امنیت | ———- | ممیزی و کسب مجوز برای کنترل دسترسی به جداول و عملیاتهای ادمین | رمزگذاری دادهها به صورت Transparent
|
جدول- In-Memory OLTP: مقایسه TimesTen با SQL Server
- زبان SQL:
TimesTen و TimesTen Cache به پشتیبانی از PL/SQL شامل انبارهای داده میپردازند. مزیت اصلی این قابلیت آن است که هر یک از برنامههای کاربردی PL/SQL که بر روی سرور اوراکل اجرا میشوند، به سادگی و با تغییرات اندکی به TimesTen منتقل میشوند. SQL Server در InterOp به همین صورت از اکثر OLTPها پشتیبانی مینماید.
- کامپایل نمودن به صورت Native:
این فرآیند برای In-Memory OLTP از سوی Oracle TimesTen پشتیبانی نمیشود. در SQL Server میتوان عملیاتها را به صورت Native بر روی جداول In-Memory OLTP کامپایل نمود تا به حداکثر عملکرد پردازش کسبوکار دست یافت. در نسخههای بعدی SQL Server، میتوان Surface Area را گسترش داد تا قابلیت کامپایل نمودن به صورت Native ارتقا یابد.
- مبتنی بر Lock:
اوراکل به ارائه مکانیسم Lock یا قفل در ردیف، جدول و سطوح پایگاهداده میپردازد که در زمان اتصال قابل پیکربندی میباشد. این روش اغلب به ایجاد Bottleneckهای همزمانی میانجامد. SQL Server از هیچ قفلی استفاده نمیکند، زیرا قابلیت همزمانی خوشبینانه را ارائه نموده و بنابراین یک قابلیت Scale-UP بدون Friction را میسر میسازد.
- یکپارچهسازی:
با توجه به اینکه Oracle TimesTen به عنوان یک محصول مجزا به شمار میرود، به مکانیسمی برای ادغام با پایگاهداده اوراکل نیاز دارد. این در حالی است که Microsoft In-Memory OLTP، محصول مجزایی نبوده و بخشی از SQL Server محسوب میشود. بدین ترتیب از دیدگاه پشتیبانگیری، بازیابی و مدیریت از کارایی بیشتری برخوردار میگردد. علاوه بر این، کاربران به دلیل یکپارچه شدن SQL Server In-Memory OLTP با پایگاهداده میتوانند صرفا انتقال جدولهای مهم عملکردی به جدولهای حافظه بهینه را انتخاب نمایند. SQL Server شامل برخی گزارشهای مفید و کارآمد میباشد که کمک میکند جداولی که باید به فرآیند بهینهسازی حافظه منتقل شوند، مشخص گردند.
- تداومپذیری:
قابلیت تداومپذیری در اوراکل در سطح پایگاهداده میباشد. در حالی که این قابلیت در SQL Server در سطح جدول بوده و موجب انعطافپذیری در تنظیم جداول در یک برنامه کاربردی میشود. برای مثال، کاربران میتوانند یک جدول بدون تداوم و ماندگاری را با حافظه بهینه برای دادهها ایجاد نمایند.
ــــــــــــــــــــــــــــ
مقایسه تکنولوژی In-Memory در اوراکل، IBM و SQL Server – قسمت اول
مقایسه تکنولوژی In-Memory در اوراکل، IBM و SQL Server – قسمت دوم