آشنایی با بانکهای اطلاعاتی نوین : ریاک
چند مدت پیش قصد طراحی یک ربات کاوشگر وب را داشتیم به نحوی که بتوانیم سایتهای خبری دنیا را به صورت مداوم بررسی کنیم و هر زمان خبر جدیدی منتشر شد، به سرعت آنرا به بانک اطلاعاتی اخبار اضافه کرده و تحلیل های لازم را انجام دهیم.
در این بین نیاز به یک معماری اطلاعاتی و الگوریتمی داشتیم که هم بتواند روی سرورهای مختلف توزیع شود و هم سرعت مناسب داشته باشد که نهایتا به این نتیجه رسیدیم که برای خواندن صفحات وب (اخبار) و بررسی جدید بودن آنها نیاز به یک بانک اطلاعاتی توزیع شده داریم که کارکرد اصلی آن پاسخ گویی به این سوال مهم باشد که این یوآرال قبلا خوانده شده است یا نه . در مرحله بعد و بعد از اینکه متوجه شدیم یک خبر جدید را یافته ایم، آنها را در یک صف توزیع شده برای پردازش های بعدی قرار دهیم .
برای بخش اول کار که بررسی جدید بودن یک صفحه مورد نیاز ما بود علیرغم اینکه از بانکهای اطلاعاتی معمولی مانند مای اس کیوال می توانستیم استفاده کنیم اما به دنبال یک بانک اطلاعاتی کلید/مقدار بودیم که کلید مورد نظر ما همان آدرس صفحه و مقدار آن هم تاریخ بررسی و خوانده شدن آن خبر باشد. با بررسی بانکهای مختلف کلید/ مقدار به بانک اطلاعاتی ریاک رسیدیم که دقیقاْ با نیاز ما منطبق بود .
هر چند در دنیای بانکهای اطلاعاتی کلید/ مقدار، ردیس حرف اول را برای پردازش های درون حافظه ای می زند اما اینجا علاوه بر حافظه ، ذخیره دائم داده ها هم برایمان مهم بود . البته ریاک را می توانید طوری تنظیم کنید که از حافظه برای ذخیره داده ها استفاده کند و مشابه ردیس عمل کند.
در ریاک علاوه بر ذخیره داده ها ، می توانید روی مقادیر کلیدها هم شاخص (اندیس) تعریف کنید و سرعت جستجوی مقادیر هم بسیار بالاست و برای جستجوی متن هم امکانات بسیار خوبی در نسخه دو آن تعبیه شده است .
امکان اجرای پردازش های دسته ای (Batch Processing) از طریق اسپارک و اتصال به ردیس هم در ریاک فراهم شده است . داده های JSon هم به راحتی به عنوان یک مقدار برای کلید قابل ذخیره و پرس و جو هستند. علاوه بر این امکانات، می توانید هم قابلیت سازگاری نهایی را فعال کنید یا سازگاری قوی که بسته به نیاز شما، قابل تنظیم است (یعنی هم AP را پشتیبانی می کند و هم CP – به این مقاله رجوع کنید)
اگر قصد یادگیری و استفاده از این بانک اطلاعاتی را دارید توصیه می کنم این کتاب صد صفحه ای جمع و جور را حتما مطالعه کنید .