بسیاری از وبسایتهای مدرن و امروزی دیتای خود را داخل دیتابیسها ذخیره میکنند و بهدلیل اینکه کوئریها یا همان پرسوجوهای دیتابیس نسبتا کند و آهسته هستند خیلی از سایتها از بهاصطلاح سرورهای کش استفاده میکنند. وظیفه سرور کش لیست کردن نتایج متداولترین کوئریهای صورت گرفته است تا بهاین ترتیب سرعت دسترسی بالاتر برود. دیتاسنتر شرکتهای مهم و بزرگ ارائه دهنده سرویس وب مانند گوگل و فیسبوک حدود یک هزار سرور فقط مخصوص کش کردن دیتا دارند.
سرورهای کش عموما از RAM استفاده میکنند که مزیت آنها سرعت بالاست اما در کنار آن، دو نکته منفی هم دارد: قیمت زیاد و مصرف بالای انرژی. هفته گذشته، یک کنفرانس بینالمللی بهنام "دیتابیسهای خیلی بزرگ" برگزار شد. محققان آزمایشگاه علوم کامپیوتر و هوش مصنوعی دانشگاه MIT در این کنفرانس درباره یک سیستم جدید برای عملیات کش در دیتاسنترها صحبت کردند. در این سیستم، بهجای RAM از حافظه فلش یعنی همان نوع حافظهای که در اسمارتفونها میبینیم استفاده میشود.
یک حافظه فلش برای هر گیگابایت از حافظه بهاندازه 5 درصد RAM انرژی مصرف میکند و هزینه آن تقریبا یک دهم هزینه روش قبلی است. علاوه بر این، فضای ذخیره دیتا در این سیستم 100 برابر شده است یعنی دیتای بیشتری را میتوان در یک فضای کوچکتر جا داد. در کنار اینها، سیستم کش فلش میتواند تعداد سرورهای کش موردنیاز در یک دیتاسنتر را بهطور قابل توجهی کاهش دهد که همین امر موجب کاهش مصرف انرژی و هزینه نهایی میشود.
از خوبیهای فلش گفتیم اما بزرگترین نقطه ضعف آن سرعت بسیار پایین در مقایسه با RAM است. زمان دسترسی در یک فلش حدود 10 هزار بار طولانیتر از زمان دسترسی در RAM دینامیک است. با تمام این حرفها، این کندی سرعت آنقدر نیست که توسط انسان قابل تشخیص باشد. زیرا کاربران بین زمان پاسخ 0.0002 ثانیهای در RAM و زمان پاسخ 0.0004 ثانیهای در کوئری فلش تفاوت زیادی احساس نمیکنند.
شاید بزرگترین نگرانی در این بین زمانی است که دیتاسنتر با سیلی از تقاضا روبرو میشود. سیستم محققان CSAIL که بهآن "بلوکش" (BlueCache) گفته میشود از یکی از تکنیکهای رایج در علوم کامپیوتر بهنام "پایپلاینینگ" استفاده میکند. پیش از آنکه سرور کش مبتنی بر فلش نتیجه اولین کوئری را بازگرداند، سیستم میتواند 10 هزار کوئری بعدی را اجرا کند. شاید پردازش نخستین کوئری 200 میکروثانیه زمان ببرد اما پاسخهای کوئریهای بعدی در وقفههای 0.2 میلیثانیهای انجام میشود.
اما محققان CSAIL علاوه بر استفاده از پایپلاینینگ باید از حقههای هوشمندانه دیگری هم استفاده میکردند. بعد از بهکارگیری تمام حربههای موجود، آنها شروع به تست سیستم خود کردند و متوجه شدند که بلوکش نسبت به حالت پیشفرض 4.2 بار سریعتر است. اولین ترفند آنها، اضافه کردن کمی از DRAM به هر کش فایل بلوکش است، یعنی مقدار کمی مگابایت رم برای میلیونها مگابایت فلش. حافظه DRAM جدولی ذخیره میکند که کوئری دیتابیس با آدرسهای حافظه فلش مربوط به هر نتیجه کوئری جفت میشود. هرچند که این کار باعث بالارفتن سرعت جستجو در کش نمیشود، اما کارایی فرآیند شناسایی خطاها و اشتباهات کش را بالاتر میبرد. یعنی روند شناخت دیتایی که هنوز وارد کش نشده سریعتر میشود.از طرف دیگر، بهکارگیری مقدار کمی از DRAM باعث اتلاف انرژی ذخیره شده سیستم نمیشود.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟