موضوع مقاله: بیگ تیبل | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # بیگ تیبل | مقدمه: بیگ تیبل ، که ترجمهٔ آن به فارسی معادل عبارت «جدول بزرگ» است، نام سامانهٔ پایگاه‌داده‌ای فشرده‌شده، با کارایی بالا و نرم‌افزار اختصاصی است که به صورت تعبیه‌شده در سامانه پرونده گوگل، سرویس قفل چاق و تعداد اندکی از دیگر برنامه‌های شرکت گوگل استفاده شده‌است. | ## بخش 1: بیگ تیبل | این سامانه به صورت رسمی در خارج از گوگل توزیع نشده‌است ولی از طرف این شرکت به عنوان بخشی از موتور برنامه‌های گوگل توصیه شده‌است. بیگ تیبل از اوایل سال ۲۰۰۴ (۱۳۸۳) شروع به توسعه یافت و به مدت هشت‌ماه مورد کار واقع شد (فوریه ۲۰۰۵)" Google's BigTable و هم‌اکنون از سوی بعضی از برنامه‌های گوگل به مانند مپ ردیوس ٬که از آن برای تولید و ایجاد تغییر داده‌های ذخیره‌شده در بیگ تیبل استفاده می‌شود،"بیگ تیبل قابل استفاده با مپ‌ردیوس است. مپ‌ردیوس چهارچوبی برای اجرایِ محاسبات موازی با اندازهٔ بسیار بزرگ است که توسط گوگل استفاده می‌شود. ما با مجموعه‌ای از لفافه بندها، به بیگ تیبل اجازهٔ استفاده به عنوان هدفی ورودی / خروجی برای کارهای مپ‌ردیوس دادیم" صفحهٔ ۳ از "بیگ تیبل: یک سامانهٔ توزیعی برای داده‌ّای ساختار یافته"، ۲۰۰۶ گوگل ریدر٬،از بیگ تیبل برای ایجاد مامنی برای اقلام بسیار گستردهٔ آینده خواهد بود." وبلاگ رسمی گوگل ریدر گوگل مپس٬"در حال حاضر در حدود ۱۰۰ واحد برای خدمت‌رسانی به ارائه چاپ، تاریخچهٔ جستجو و تفشه‌ها و اورکات استفاده می‌شود." Google's BigTable جستجوی کتاب گوگل ٬میزبانی گوگل کد ٬اورکات، یوتوب"راه حل جدید آن‌ّا برای پیش‌نمایش کوچک‌شده٬استفاده از بیگ تیبل شرکت گوگل است٬که کارایی بالایی را برای تعداد زیاد، تحملِ خطا، ذخیره‌سازی و سایر موارد فراهم می‌آورد. این سامانه فوق‌العاده‌است و نشانی از همکاری فراگیر است." گفتگو مقیاس‌پذیری در یوتوب و جیمیل. دلایل گوگل برای استفاده از پایگاه‌دادهٔ مختص خود، مقیاس‌پذیری، کنترل بهتر بر شاخص‌ّای مختلف کارایی است."ما بیگ تیبل را تعریف نمودیم٬یک سامانهٔ توزیع شده برای ذخیرهٔ داده‌های ساختاریافته برای شرکت گوگل… کاربران ما علاقه‌مند به کارایی بالا و در دسترسی بودن سایت هستند؛ که با پیاده‌سازی جدول بزرگ تأمین می‌شود… در نهایت ما برتری‌های آشکاری را در ساختن ساختارِ ذخیره‌سازی مختص به خود مشاهده نمودیم. ما باطراحی بیگ تیبل، تا حد زیادی نرمش و راحتی را احساس نمودیم." از نتیجه‌گیریِ "بیگ تیبل: سامانه‌ایتوزیع شده برای ذخیره‌سازی برای داده‌های ساختار یافته" آشنایی با بیگ تیبل بیگ تیبل یک سیستم ذخیره‌سازی توزیع شده برای مدیریت داده‌های ساختاریافته می‌باشد و برای کاربردهای بسیار بزرگ به کار گرفته می‌شود: پتابایت‌ها از داده‌هایی که بر روی هزاران سرور پیاده‌سازی می‌شود. از جملهٔ آن‌ها می‌توان به گوگل آنالیتیکس، گوگل فایننس، اورکات، جستجوی شخصی‌شده و گوگل ارت اشاره کرد. این برنامه‌ها به روش‌های مختلفی، چه از نظر اندازهٔ ویژگی‌های اصلی بیگ تیبل که آن را از سایر سیستم‌های ذخیره‌سازی متمایز می‌سازد عبارتند از: کارایی بالا، مقیاس‌پذیری، قابلیت استفاده توسط برنامه‌های مختلف و همچنین دسترسی بالا. از بسیاری جهات، بیگ تیبل به یک پایگاه داده‌ها شباهت دارد، برای مثال روش‌ها و استراتژی‌های پیاده‌سازی مشابهی با پایگاه‌داده دارد. پایگاه‌های دادهٔ موازی و پایگاه‌های دادهٔ حافظهٔ اصلی هم دارای امکاناتی همچون مقیاس‌پذیری و کارایی بالا هستند ولی بیگ تیبل واسط کاربر متفاوتی نسبت به آن‌ها دارد. بیگ تیبل از مدل داده‌ای کاملاً رابطه‌ای استفاده نمی‌کند و به جای آن مدل داده‌ای ساده‌ای را در اختیار کاربران قرار می‌دهد. این نقشه توسط یک کلید سطری، یک کلید ستونی و یک برچسب زمانی شاخص بندی شده‌است و هر مقداری در این نقشه، یک آرایه‌ای از بایت‌ها است. سطرها کلیدهای سطری یک جدول رشته هایی دلخواه هستند که در حال حاضر اندازه آن‌ها حداکثر ۶۴کیلوبایت است و معمولاً اندازه نرمال آن‌ها ۱۰۰۰۰ بایت می‌باشد. در نتیجه، خواندن‌های محدوده‌های سطر کوتاه کارامد هستند و عموماً نیاز دارند که فقط با تعداد کمی از ماشین‌ها ارتباط برقرار کنند. کلاینت‌ها می‌توانند با انتخاب کلیدهای سطر خود از این ویژگی بهره‌برداری کنند بطوری‌که آن‌ها محل مناسبی برای دسترسی‌های داده خود بدست می‌آورند. برای مثال در webtable، صفحات در دامنه یکسان در داخل سطرهای مجاور با هم ملحق می‌شوند و این کار را به وسیلهٔ معکوس کردن مؤلفه‌های نام میزبان URLها انجام می‌دهند. | ## بخش 2: بیگ تیبل | ذخیره‌سازی صفحات در کنار یکدیگر از دامنه یکسان باعث می‌شود که برخی تحلیل‌های میزبان و دامنه بسیار کارآمدتر باشند. ستون‌ها کلیدهای ستونی در مجموعه‌هایی که خانواده‌های ستونی نامیده می‌شوند دسته‌بندی می‌شوند. یک خانوادهٔ ستونی باید ایجاد شود تا بتوان داده‌ها را زیر هر کلید در آن خانواده قرار داد. برچسب زمانی هر خانه در بیگ تیبل می‌تواند چندین نسخه از یک داده را دربرداشته باشد، این نسخه‌ها توسط برچسب‌های زمانی شاخص بندی می‌شوند. نسخه‌های متفاوت یک خانه بر اساس برچسب‌های زمانی مرتب می‌شوند به‌طوری‌که نسخه‌های جدیدتر بتوانند سریع تر در اختیار قرار بگیرند. رابط برنامه‌نویسی نرم‌افزار رابط برنامه‌نویسی نرم‌افزار (ای‌پی‌آی) مربوط به بیگ تیبل تابع‌هایی برای ساختن و پاک کردن جدول‌ها و خانواده‌های ستونی در اختیار قرار می‌دهند. ای‌پی‌آی‌ها همچنین توابع مورد نیاز برای تغییر کلاسترها، جدول‌ها، و خانواده‌های ستونی فراداده مثل دسترسی به حقوق کنترلی را تأمین می‌کنند. بلوک‌ها بیگ تیبل بر روی قسمت‌های متعددی از زیرساخت گوگل مورد استفاده قرار گرفته‌است. پیاده‌سازی پیاده‌سازی بیگ تیبل شامل سه قسمت عمده‌است: یک کتابخانه که با هر کاربر در ارتباط است، یک سرور اصلی و تعداد زیادی سرور تبلت. سرورهای تبلت می‌توانند به صورت پویا به یک خوشه اضافه شوند یا از آن حذف شوند تا بتوانند تغییرات را مدیریت و تعدیل بکنند. سرور اصلی عهده‌دار مرتبط کردن تبلت‌ها با سرورهای تبلتی، شناسایی سرورهای اضافه شده و غیرقابل استفاده و تنظیم میزانِ بار روی یک سرور تبلت می‌باشد. هر سرور تبلت درخواست‌های خواندن و نوشتن مربوط به تبلت‌های زیر نظرش را تحت نظر قرار می‌دهد و همچنین از بزرگ شدن بیش از حد تبلت‌ها جلوگیری می‌کند. همچون بیشتر سیستم‌های ذخیره‌سازی توزیع شده با یک سرور اصلی(single-master)، داده کلاینت از طریق سرور اصلی منتقل نمی‌شود: کلاینت‌ها برای خواندن و نوشتن مستقیماً با سرورهای تبلت ارتباط برقرار می‌کنند. اغلب کلاینت‌ها هرگز با سرور اصلی ارتباط برقرار نمی‌کنند زیرا کلاینت‌های بیگ تیبل برای دریافت اطلاعات در مورد موقعیت تبلت به سرور اصلی متکی نیستند. هرجدول شامل مجموعه‌ای از تبلت هاست، و هر تبلت شامل کلیه داده‌هایی است که با یک رنجی از سطر در ارتباط است. با بزرگ شدن یک جدول، جدول به صورت اتوماتیک به تبلت‌های چندگانه تقسیم می‌شود، سایز هر کدام تقریباً به صورت پیش‌فرض ۱۰۰–۲۰۰مگابایت است. سرور اصلی از وضعیت سرورهای تبلتی که در آن لحظه مشغول بکار هستند خبر دارد؛ از جمله اینکه می‌داند که کدام تبلت‌ها هستند که وظیفه‌ای به آن‌ها اختصاص داده نشده‌است. | ## بخش 3: بیگ تیبل | وقتی به یک تبلت وظیفه‌ای اختصاص داده نشده‌است، و یک سرور تبلت با فضای مناسب قابل استفاده‌است، سرور اصلی با فرستادن یک درخواست بارگذاری تبلت به سرور تبلت، وظایفی را برای آن مشخص می‌کند. وقتی یک سرور تبلت شروع به کار می‌کند، آن از یک قفل اختصاصی برای یک فایل به نام دایرکتوری چابی استفاده می‌کند. یک سرور تبلت وقتی که قفل اختصاصی خود را از دست بدهد از ادامهٔ کار برای سرور خودداری می‌کند. سرور اصلی همچنین وظیفه دارد که وقتی یک سرور به تبلت‌هایش سرویس نمی‌دهد آن را شناسایی کند. برای انجام چنین کاری سرور اصلی در زمان‌های مشخصی از سرور تبلت دربارهٔ وضعیت قفلش سؤال می‌پرسد. فشرده‌سازی به مرور که اعمال نوشتن اجرا می‌شوند، اندازهٔ جدول حافظه افزایش می‌یابد. وقتی که حجم جدول حافظه به یک حدی معینی می‌رسد، یک جدول حافظهٔ جدید ساخته می‌شود. این فرایند دو هدف را دنبال می‌کند؛ باعث کاهش استفادهٔ حافظه توسط سرور تبلت می‌شود و همچنین در صورتی که سرور دچار مشکل شود و نیاز به بازیابی اطلاعات باشد، داده‌های کمتری نیاز است که از روی لاگ خوانده شود. بهینه‌سازی برای اینکه پیاده‌سازی مورد نظر به نحو احسن انجام شود، نیاز است که بر روی آن اصلاحاتی انجام پذیرد، از جمله: گروه‌های محلی کاربران می‌توانند چند خانوادهٔ ستونی را ترکیب کنند و یک گروه محلی را به وجود آورند. اگرچه به شکل ستون‌هایی با تعداد ثابت نیست، ولی بنا به تعریف نویسندگانش «یک نگاشت مرتب شده‌یِ چند بعدی و خلوت است». برای اینکار هر جدول به قرص‌هایی تقسیم شده‌اند - این بخش‌های تفسیم‌بندی شده از جدوال، به صورت ردیف‌هایی از قرص‌هایی با طولی در حدود ۲۰۰ مگابایت هستند. اگر اندازهٔ این قرص‌ها بیش از اندازهٔ تعیین شده گردد، با استفاده از الگوریتم فشرده‌سازی بی‌دی‌آی‌اِف‌اِف، فشرده می‌گردند. شرایط همانند جدولِ بزرگ را فراهم می‌آورد و توسط هستهٔ هادوپ پشتیبانی می‌شود.هستهٔ هادوپ اچ‌بیس - ویکیِ هادوپ جدول ترکیبی — جدول هایپربرای مدیریت ذخیره‌سازی و پردازش اطلاعات بر روی خوشه‌های کارگزاران استفاده می‌شود. آپاچی کسندرا — سامانهٔ ذخیره‌سازی و توزیع‌شده‌ای از شرکت آپاچی که در سایت مشهور فیس بوک استفاده شده. این سامانه براساس دادهٔ ساختاری مانند پایگاه گسترده داده آمازون، دینامو و به زبان جاوا نوشته شده‌است. | ## جمع‌بندی | نپتون — به زبان جاوا نوشته شده و از زووکیپر و اچ‌دی‌اف‌اس هادوپ استفاده می‌نماید.