انجام پایان نامه

درخواست همکاری انجام پایان نامه  بانک مقالات رایگان انجام پایان نامه

سفارش پایان نامه

|

انجام پایان نامه ارشد

انجام پایان نامه

با گوگل اسپنر، گرداننده بزرگترین دیتابیس یکپارچه دنیا آشنا شوید

هر روز صبح وقتی اندرو فایکس پشت میز خود واقع در مقر گوگل در مانتین ویو کالیفرنیا می‌نشیند، لینک VC به نیویورک را باز می‌کند. VC در گوگل مخفف ویدئو کنفرانس است. او با نگاه کردن به نمایشگر روی میزش، می‌تواند ویلسون شِی را در دفتر گوگل واقع در منهتن ببیند، شِی هم فایکس را می‌بیند و هر دو به دفتر سوم گوگل در کرکلند واشینگتن وصل هستند. تیم مهندسی آنها 3 دفتر را در نقاط مختلف کشور دارد ولی همه می‌توانند با هم چت کرده، طوفان فکری برگزار کنند و بدون ثانیه‌ای تأخیر مشکلات را بر طرف نمایند. با همین ارتباطات بود که گوگل، «اسپنر» (Spanner) را ساخت.

حتماً‌ برای شما هم پیش آمده که از خودتان بپرسید سایت گوگل با آن همه زیرساخت، بر روی چه سرورهایی قرار دارد و آنها چطور اداره می‌شوند. در ادامه مطلب با ما همراه باشید تا کمی از داستان اسپنر با آنتن‌های GPS و ساعت‌های اتمی‌اش (!) برای شما بنویسیم.
اسپنر چیست؟ در سپتامبر امسال گوگل یک مقاله مفصل منتشر کرد که در آن ورودی ها و خروجی‌های اسپنر توضیح داده می‌شد. زیرساخت عظیم گوگل از آن موقع از یک سیستم اختصاصی بهره می‌برد که به طور خودکار فشار شبکه در زمان‌هایی که ترافیک زیاد است یا مشکلات سخت افزاری در بخشی از سرورها بروز می‌کند را از محلی به محل دیگر انتقال داده و تکثیر می‌کند.

این پلتفرم که اسپنر (آچار) نام دارد یک سیستم ذخیره سازی و رایانش هوشمند است که تمام دیتاسنترهای گوگل را آچارکِشی می‌کند و به طور خودکار (بدون دخالت انسان) بر اساس الگوهای مصرف داده، اطلاعات را جا به جا یا اضافه می‌نماید. گوگل قصد دارد اسپنر را بر روی 1 تا 10 میلیون سرور خود به کار بگیرد که می‌تواند شامل 10 تریلیون (10 به توان 13) دایرکتوری و 1 کوینتیلیون (10 به توان 18) بایت فضای ذخیره و 100 ها تا 1000 ها محل در سرتاسر دنیا شود.

اسپنر تکنیک‌های خود را از برخی دیگر از پلتفرم های بزرگ گوگل برای اداره دیتابیس ها قرض می‌گیرد ولی هسته آن کاملاً جدید است. با استفاده از آنتن‌های GPS و ساعت‌های اتمی بسیار دقیق، اسپنر با دقتی بالا داده ها را در سرتاسر شبکه گوگل همسان سازی می‌کند. شاید در ادامه توضیحات، اسپنر به نظر شما یک راه حل افراطی بیاید، ولی این راه حل افراطی مناسب حل یک مشکل به غایت بزرگ است. از شما می‌پرسم، چند کمپانی را در دنیا می‌توان یافت که به اندازه گوگل نیاز به دریافت و توزیع داده‌ها با سرعت بسیار بالا داشته باشند؟

فیسبوک با چند صد میلیون کاربر اخیراً به فکر ساختن سیستم مشابهی افتاده زیرا اهمیت سر و سامان دادن داده ها در یک شبکه گسترده در سطح کره خاکی را به خوبی فهمیده. سیستم فیسبوک که Prism نام دارد با اسپنر متفاوت خواهد بود ولی به خوبی نشان می‌دهد که فیسبوک نیز با مشکلاتی مشابه آنچه گوگل از قدیم روبرو بوده، دست و پنجه نرم می‌کند. اسپنر پلتفرمی است که در سرتاسر شبکه جهانی گوگل گسترده شده ولی طوری عمل می‌کند که انگار در یک محل واحد قرار دارد. صد ها دیتا سنتر و میلیون‌ها دستگاه سرور و تریلیون ها خط اطلاعات، همه زیر نظر جناب اسپنر کار می‌کنند.

این مخلوق دست بشر که می‌توان آن را نزدیک‌ترین چیز به شبکه اسکای‌نت فیلم نابودگر ساخته جیمز کامرون دانست، تنها راهکار برای گوگل بود تا در حال و آینده به مشتریان جهانی خودش یک تجربه کاربری بی نقص را ارائه کند، بدون اینکه یک مشکل در بخشی از سیستم، باعث ایجاد اختلال در کار آنها شوند. نسل جدید دیتا بیس گوگل بخشی از سیستم تبلیغاتی گوگل نیز هست که کمپانی میلیون ها دلار از آن درآمد دارد و در اصل، این گام جدید می‌تواند به ما نشان دهد که دنیای وب به کدام سو می‌رود.

گوگل با انتشار مقاله مفصلی که در ابتدای این مطلب به آن اشاره شد، باعث به وجود آمدن جبنشی بزرگ بین اهل فن شد. راگ مورتی که از مهندسین پروژه مشابه در فیسبوک است اسپنر را "کاملاً شگفت انگیز" خواند و گفت که کمپانی متبوعش هنوز تا ساختن چیزی مشابه فاصله دارد.

شما می‌دانید که عملیات گوگل در سطح وب تقریباً از تمام کمپانی‌های دیگر پیچیده‌تر است و از این رو کمپانی مجبور به ساخت این پلتفرم یکتا شده که بی شک از تمام معیارهای امروزی زندگی در قلمرو آنلاین، فراتر است و در اصل نشان می‌دهد که گوگل چه چشم انداز عجیب و غریبی را برای آینده این عرصه قائل است!

پیش از آنکه اسپنر رونمایی شود کمتر کسی فکر می‌کرد که چنین پلتفرم هوشمندی به این گستردگی قابل ایجاد باشد. دیتابیس‌های بر مبنای NoSQL را داشتیم که قادر به ذخیره سازی اطلاعات در مراکز چندگانه بودند، ولی نمی‌توانستند این کار را ضمن به جریان در آوردن اطلاعات با یک نبض ثابت انجام دهند؛ یعنی اطلاعاتی که شما در این گوشه دنیا از یک سرور دریافت می‌کردید همسان با اطلاعات دریافتی فردی در امریکای جنوبی نبود. در نتیجه برای افزودن به استواری شبکه و از بین بردن تأخیرها در همسان‌سازی سرورها در مناطق جغرافیایی مختلف، نیاز بود جهشی صورت گیرد.

مهندسین گوگل اسپنر در ساخت دیتابیسی که هم جهانی باشد و هم پایدار، کاری غیرمنتظره انجام دادند. اصلاً این کمپانی‌ تاریخچه‌ای از انجام کارهای غیرمنتظره را دارد. تیمی که علاوه بر فایکس و شِی متشکل از کهنه سربازهای معروف گوگل همچون جف دین و سانجای گماوات بود، به دنبال ایفای این هدف بر آمد. به قول فایکس: «به عنوان یک توسعه دهنده سیستم های توزیع شده یاد گرفته ام که به وقت اعتماد نکنم. کاری که ما [در پروژه اسپنر] انجام دادیم این بود که راهی پیدا کنیم که بشود به وقت اعتماد کرد و اصلاً درک کرد که اعتماد به وقت یعنی چه.» واقعاً یعنی چه؟
زمان، جوهره اصلی است   زمان جزئی از ذات اینترنت است. هم برای کاربران و هم برای ارائه کنندگان خدمات. وقتی مثل گوگل یک سرویس عظیم را اداره می‌کنید، باید همه چیز سریع انجام شود. ولی در عین حال باید برای یکسان سازی زمان در سرتاسر دستگاه‌های موجود در شبکه نیز چاره‌ای اندیشید. بایستی فرآیندهای پر تعدادی را که روی هر سرور انجام می‌شود از لحاظ زمانی همسان کرد و تازه این نقطه پایان کار نیست، باید خود دستگاه‌ها را هم همسان کرد تا بتوانند یکپارچه کار کنند. گفتن اینها از انجامشان ساده تر است، خیلی خیلی ساده تر.

به طور معمول اوپراتورهای دیتاسنترها، سرورها را با استفاده از NTP (مخفف Network Time Protocol) سینک می‌کنند. این در اصل یک سرویس آنلاین است که ماشین‌ها را به ساعت‌های اتمی رسمی متصل می‌کند؛ ساعت‌هایی که به سازمان‌های سرتاسر دنیا خدمات ارائه می‌کنند. ولی از آنجایی که خود انتقال اطلاعات در مسیر شبکه زمان می‌برد، این روش هرگز کاملاً بهینه نیست و گاهی نیز کلاً در هم و بر هم می‌شود. در جولای بود که تعدادی از کله گنده‌های دنیای وب -از جمله Reddit، موزیلا و Gawker- دچار مشکل شدند زیرا نرم افزار اداره کننده سرورهای آنها آماده اداره کردن آن "پرش یک ثانیه‌ای" که به ساعت‌های اتمی جهان اضافه شده بود، نبود.

اما با اسپنر، گوگل NTP را به نفع مکانیسم اختصاصی خودش که رابط برنامه نویسی کاربردی TrueTime نام دارد کنار گذاشت. آقای فایکس می‌گوید: «چیزی می‌خواستیم که به آن اعتماد داشته باشیم. این یک مرجع زمانی است که صاحبش خود گوگل است.» به جای اتکا به ساعت‌های دیگر، گوگل دیتاسنترهای خود را که اسپنر آنها را اداره می‌کند، به آنتن‌های GPS و ساعت‌های اتمی مجهز کرده. دریافت کننده GPS در کنار ساعت اتمی، می‌تواند "همیشه" زمان دقیق را کشف کند.

مجموعه این دستگاه‌های نگه دارنده زمان به تعداد زیادی مستر سرور متصل هستند که هر یک تعدادی از سرورهای اداره کننده شبکه گوگل را می‌چرخانند. هر یک از این سرورها نیز مجهز به برنامه‌ای است که به طور مداوم در حال گزارش دادن به مستر سرور همان پایگاه و سایر پایگاه‌ها است و به این طریق، یک اجماع ماشینی بر روی زمان دقیق صورت می‌گیرد که با استفاده از آن کل شبکه همسان و همگام می‌شود.
سیستم عکس العمل نشان می‌دهد، نه انسان   به لطف سرویس TrueTime، گوگل می‌تواند تمام دستگاه‌های شبکه را به طور دائمی با هم سینک کند حتی اگر در پایگاه های متفاوتی باشند، و این به آن معنا است که سرورها می‌توانند به صورت آنی به ذخیره سازی و بازیابی اطلاعات بپردازند، بدون اینکه در کار یکدیگر خللی به وجود بیاورند. آقای فایکس می‌گوید: «ما می‌توانیم داده‌ها را در دو نقطه مختلف -مثلاً یکی در امریکا، دیگری در اروپا- ذخیره کنیم و همچنان دقیق بدانیم که ترتیب وقوع کدام است و کل سیستم هم این را می‌داند و هیچ امکانی وجود ندارد که ترتیب آنها اشتباه تشخیص داده شود.»

اندی گراس که از صاحب نظران در این زمینه است می‌گوید طراحان دیتابیس‌ها معمولاً دنبال این هستند که دستگاه‌ها را به حرف زدن با همدیگر وادارند و به این طریق اطلاعات را سینک کنند: «شما برای تصمیم گیری بر سر تصحیح "ترتیب انتقال‌های صورت گرفته" مجبور به انجام حجم زیادی مبادله اطلاعات هستید.» اما مشکل این است که چنین مبادله وسیعی می‌تواند شبکه را به بن‌بست برساند: «اگر شما تعداد زیاد آدم داشته باشید که به تعداد زیادی سیستم توزیع شده در سرتاسر دنیا دسترسی دارند، سینک نگه داشتن همه چیز خیلی سخت می‌شود. تعداد این عناصر که بالاتر برود، کار هم سخت‌تر می‌شود.»

بنابراین گوگل یک تاکتیک کاملاً متمایز را برگزید. به جای به دردسر انداختن خود برای بهبود ارتباط میان سرورها، به آنها راه جدیدی برای بیان "زمان" وقایع نشان داد. یعنی استفاده از ساعت‌های اتمی و آنتن‌های GPS. برای مهار مقوله زمان، گوگل هم می‌تواند یک شبکه جهانی و مستحکم بسازد و هم اینکه سرویس‌های خود را در مقابل تأخیرهای شبکه، قطع شدن سرورها، و سایر مشکلات نرم افزاری و سخت افزاری مقاوم کند. ولی در اصل، حالا با اسپنر گوگل می‌تواند با دقت بالا اطلاعات را در سرتاسر شبکه متشکل از میلیون ها سرور خود جایگذاری کند و در صورت نیاز به سرعت بین کپی‌های مختلف اطلاعات، سوئیچ کرده آنها را در دسترس قرار دهد. به بیان دیگر، حتی کپی‌های پشتیبان برای اطلاعات هم خلل ناپذیر هستند.

وقتی یک کپی از دسترس خارج می‌شود، اسپنر سریعاً به کپی دیگر سوئیچ می‌کند ولی عملکردش به این محدود نیست بلکه برای بهبود کارایی سیستم نیز جابه‌جایی هایی را انجام می‌دهد تا در صورتی که مثلاً یک سرور حامل کپی مورد نظر مشغول بود، سریعاً سرور دیگر جایگزین شود و ضمن ارائه پیوسته خدمات به کاربران، از بار آن سرور هم بکاهد. آقای فایکس می‌گوید که حالا گوگل با این سیستم مدیریت هوشمند پول کمتری هم خرج می‌کند.
وجب کردن اندازه قدم‌های گوگل   یک پرسش مهم این است که آیا دیگران هم می‌توانند پا جای پای گوگل بگذارند؟ و اگر می‌توانند، آیا می‌خواهند؟ اندی گراس در این باره می‌گوید که احتمالاً قیمت بالای ساعت‌های اتمی و رسیورهای GPS مورد استفاده گوگل، برای خیلی از عملیات‌ها بسیار گران بوده و به صرفه نیست. از طرف دیگر، دوباره سازی یک پلتفرم از پایه نیز کاری است بس عظیم. گوگل تا اینجا 4 سال و نیم روی این پروژه وقت صرف کرده و آقای فایکس که پیش‌تر بر روی ابزار تاریخچه وب گوگل، اولین خدمت جستجوی محصول آن، و نیز Google Answers کار کرده، اسپنر را سخت‌ترین پروژه عمر خود می‌خواند.

جدای از این، مشکلات متعدد تدارکات (واژه لجستیک اهمیت قضیه را بهتر می‌رساند!) نیز بر سر راه چنین پروژه‌ای هست. فایکس می‌گوید که مجبور بوده‌اند آنتن‌های GPS را روی سقف دیتاسنترها نصب و سپس آنها را به سخت‌افزارهای داخل ساختمان متصل کنند. و البته که این کافی نبوده و برای زمان‌های ناپایداری، ساعت‌های اتمی را تدارک دیده‌اند تا جایگزین GPS باشند. البته او قیمت آنها را به نسبت ارزان ذکر می‌کند.

مورد دیگر عدم نیاز سرویس TrueTime به سرورهای اختصاصی بوده. وقت نگه‌دارهای دیجیتال گوگل، در قفسه های داخلی سرورها قرار می‌گیرند و تنها نیاز به متصل شدن به برخی از دستگاه‌ها را دارند: «شما ممکن است فکر کنید که کلی از این دستگاه‌ها در هر دیتاسنتر وجود دارد. خیر. آنها یک جعبه هستند، می‌خرید و در داخل قفسه سرور نصب شان می‌کنید و با کابل به سیستم متصل می‌شوند.» نکته مهم این است که این سرویس فقط برای دیتاسنترها مورد نیاز است ولی جهت حرکت کلی سرویس های آنلاین عظیم به این سمت است و سایتی مثل فیس بوک هم روزی مشابه اسپنر را خواهد داشت چون نیاز به آن احساس می‌شود.

سیستم تبلیغات گوگل فوق العاده است، ولی نه به اندازه اسپنر. در اصل تبلیغات گوگل وامدار اسپنر خواهد شد. در نظر داشته باشید که سیستم تبلیغات گوگل در واقع یک حراجی آنلاین است، جایی که تبلیغ‌دهندگان پول می‌دهند تا محصولشان به کسی که وسیله خاصی را جستجو می‌کند یا به دنبال سایت خاصی می‌گردد معرفی شود. ولی نمایش هر یک از این تبلیغ‌ها بستگی به توصیف داده‌هایی دارد که تبلیغ‌دهندگان و مشتریان بی‌شمار در اینترنت از خود بر جا می‌گذارند. حالا با اسپنر گوگل می‌تواند داده‌ها را در مقیاس جهانی مدیریت کند و همچنان کل سیستم را نیز چالاک و همگام نگه دارد.

اسپنر یک دلیل دیگر است برای اینکه غول مانتین ویو را نوآورترین کمپانی دنیا بدانیم. شما موافق نیستید؟

سفارش پایان نامه

نقشه