جدا از مشکلات مقیاس گذاری تکنیک های جستجوی قدیمی، برای داده های به این اندازه، تکنیک های جدید رقابتی که استفاده از نمایش اطلاعات اضافی در فرا متن ها را برای نتیجه جستجوی بهتر شامل میشود وجود دارد… خیزش سریع تکنولوژی برای جمع آوری مستندات وب و نگهداری آن ها بصورت بروز لازم و ضروری است. فضای ذخیره سازی باید به نحو موثری جهت ذخیره ایندکس ها و مستندا تشان استفاده شود. سیستم indexing باید صدها گیگابایت از داده ها را به شکل موثری پردازش کند. پرس وجوها باید با سرعت صدتا هزار بار در هر ثانیه انجام شوند» سرجی برین ولاورنس پیج، 1997 [1]
در ابتدا BackRub وجود داشت، سرویسی که به گوگل تبدیل شد. امروزه گوگل با دقت بیشتری به الگوریتم pageRank خود وابسته است. PageRank الگوریتمی انتخابی است که ارزش را به چیز مهمتر می دهد. نشانگر اهمیت یک صفحه وب تعداد صفحاتی است که به آن صفحه خاص لینک می شوند.
آقایان بِریِن و پِیچ خیلی زود فاکتور جدیدی را به این الگوریتم اضافه کردند که رأی را به صفحه مهمتر می داد. ایده آنها این بود که صفحه ای مهمتر است که تعداد افراد بیشتری بر روی آن کلیک می کنند.کلیک های بیشتر روی یک صفحه وب باعث می شد که آن صفحه وب دارای ارزش و اهمیت بیشتری شود. در انتها، آرام آرام فاکتورهای دیگری نیز به این الگوریتم اضافه شد. برای مثال ، تعداد دفعاتی که محتوای یک صفحه تغییر
می کند نیز یکی از فاکتور های مهم شد.
تکنولوژی pogeRank گوگل دقیقاً به جستجوی اینترنتی وابسته شده است. برای نمونه، الگوریتم رأی گیری(Voting Algorithm) کارایی کمتری در عمل جستجو دارد. توجهی که گوگل نسبت به تکنولوژی جستجویش کرد، باعث تحت الشعاع قرار گرفتن افکار عمومی راجع به این شرکت شد. جستجوی گوگل همانند یک ستاره نوظهوراستکهدرخشندگیاش باعث شده تا ناظران نتوانند جهات دیگر این پدیده را به وضوح و دقیق مشاهده کنند.
صرف نظر از این ، گوگل یک شرکت تکنولوژی است[2]بعضی از این تکنولوژی ها هنگامی که دریک مقاله توضیح داده می شوند مانند مقاله “The Anatomy of a Large –Scale Hypertextual” که در همان اوایل مطرح شد، خواستار پیدا می کنند. مقاله های اخیر مانند
“MapReduce: Simplified Data search Engine" می توانند به آرامی خوانده شوند[3] با توجه به اینکه گوگل یک تکنولوژی است، توضیح دادن اینکه گوگل چکار می کند، درجملات ساده وقابل هضم قدری مشکل است. شکل زیر یک دید کلی از چهار چوب گوگل را ارائه می کند.
(تصاویر و نمودار در فایل اصلی موجود است)
مهمترین قسمت های تکنولوژی گوگل که پایه و اساس دیاگرام Googleplex است شامل موارد زیر میشوند:
[a]: اصلاح لینوکس به منظور اجازه دادن به فایل های بزرگ و دیگر توابع درجهت دادن شتاب بیشتر به همه سیستم
[b]: یک معماری توزیع شده که به برنامه های کار بردی و مقیاس بندی ها اجازه می دهد که بدون توجه به نوع آنها و بدون نیاز به نصب سیستم عاملی دیگر به سیستم متصل شوند.
[c]: یک معماری فنی که در هر سطح مقیاس بندی مشابه بهم هستند.
[d]: یک معماری مرکزی وب، که به انواع جدید برنامه های کاربردی، بدون محدودیت یک زبان برنامهنویسی اجازه می دهد تا ساخته شوند.
تکنولوژی گوگل از یک پیشرفت پیوسته و یا آنچه که مدیران مشاور فنی ژاپنی به آن Kaizan می گویند بوجود آمده است. هر تغییر تکنیکی گوگل ممکن است برای کاربران متوسط آن بی اهمیت باشد اما زمانیکه بصورت کامل آن را تفسیر می کنند مزایای فن شناسانه گوگل از ابداعات افزایشی و تصاعدی آن، سازگاری هوشمندانه و ماهرانه برداشت های پژوهشی – تحقیقی و تنظیم عالی بیزانس برای لینو کس حاصل میشود. زمانی، یک تاریخ نویس تکنولوژی ، از بین صدها پیشرفتی که گوگل در این نُه سال اخیر آنها را رهبری کرده، قادر به تشخیص یک یا دو اختراع مهم که برمبنای pageRank است خواهد بود. منتقدین گوگل در آینده خواهند دید که گوگل هسته پردازش تکنولوژی خود را با منابع مختلف پیوند زده است. جهت توضیح ، ساختار مراکز داده گوگل و ارسال پیام به این مراکز و از این مراکز به جاهای دیگر راههای زیادی وجود دارد که از طریق محاسبات شبکه ای صورت می گیرد.[4] توانایی گوگل در خواندن داده بصورت همزمان از کامپیوتر های مختلف ، یادآور تکنولوژی BiTorrent است.[5] گوگل از سخت افزار مناسب یا “White box" در مراکز داده اش استفاده می کند که نشان دهنده خصلت کامپیوتر دوست بودن گوگل است. استفاده از حافظه و دیسک ها برای ذخیره چنیدن کپی از داده ها ناشی از محدودیت های محاسباتی است.
گوگل به تکنولوژی دست یافت، سپس آنها را گلچین کرد و از راههای مختلف نزدیک شدن یک بلاک ساختمان، را به سیستم های با مقیاس بزرگ نمایش داده گوگل از این گلچین کردن و دسته بندی کردن سودهای زیادی برد که از آن جمله می توان به این موارد اشاره کرد: اولاً چهارچوب محاسباتی گوگل عملکرد سیستم را از سخت افزارهای کم هزینه وبا قیمت نازل جدا کرد. دوماً، گوگل درمورد تنگناهای سیستم عامل هایی از قبیل Solavis ، ویندوز سرور پیشرفته و لینوکس های آماده کارکرده است. سوماً ، گوگل ایده های برنامه نویسی خوبی از زبانهای برنامه نویسی دیگر گرفته ، و توابع و کتابخانه های جدیدی را جهت حذف بیشتر نیازهای کدنویسی دستی برای موازی سازی یک برنامه کاربردی در سر تاسر سرورهای گوگل پیاده سازی کرده است.[6]
طبق نظر جف دین که یکی از مهندسان ارشد گوگل است، مهندسی گوگل ترتیبی از آشفتگی هاست.[7] این سخن نه شگفت انگیز است ونه لزوماً سخنی منفی است. Googleplex جعبه ای است کوچک جهت برنامه نویسی و طراحی وابزارهای آن پیچیدهوغیرطبیعی اند. مقابله با مشکلات گوگل را تبدیل به مکانی برای بهترین و درخشنده ترین تکنیک های جهان کرده است. طبیعت خلاق با حرکت گوگل ترکیب شده و همین امر پیش گویی ابداعات بعدی گوگل را مشکل ساخته است. قبل از مرور دقیق تر قسمت های انتخاب شده از تکنولوژی گوگل ، دیاگرام «چهارچوب محاسبات گوگل» مروری بر Googleplex و برخی از تکنولوژی های آن ایجاد می کند و موضوع بحث این فصل نیز راجع به همین مقوله خواهد بود.
Page Rank جهت کار کردن به مقدار زیادی سیکل محاسبات بر حسب اسب بخار نیاز دارد. هنگامیکه گوگل در سال 1996 در حال پیشرفت بود آقایان برین و پیچ محاسبات را محدود کردند. برای اینکه pageRank کار کند، آنها مجبور بودند طریقه تولید الگوریتم pageRank را بر روی کامپیوترهای معمولی و پیش پا افتاده موجود بفهمند. از ابتدا- و با توجه به تصادف پیشرفت تقریباً مسلم گوگل با مایکروسافت این نتیجه مهم است- گوگل باید مشکل مهندسی نرم افزار و سخت افزار خود را برای به موفقیت رسیدن جستجوها حل می کرد. در حقیقت هنگامیکه راجع به تکنولوژی گوگل بحث میکنیم خیلی مهم است که در ذهن خود این موضوع را داشته باشیم که pageRank تنها به این دلیل مهم است که می تواند به سرعت دردنیای واقعی اجرا شود ونه در یک کامپیوتر بی بار ویا دریک آزمایشگاه روشن همراه با نور آبی سوپر کامپیوترها.
شکل ترکیبی گوگل: مهندسی نرم افزار وسخت افزار نشان می دهند که چهار چوب تکنولوژی گوگل دارای دو ناحیه فعالیت است. یک قسمت مهندسی نرم افزار است که تلاش می کند روی pageRank ودیگربرنامههایکاربردیمتمرکز شود.مهندسینرم افزاری که در اینجا بکار رفته است به معنای نوشتن کد و فکر کردن درباره اینکه چگونه یک سیستم کامپیوتری عمل کند تابیشترین سرعت عمل را داشته باشد است. سرعت عمل یعنی زمان پاسخ گویی زیر یک ثانیه ، که گوگل قادر است علی رغم افزایش کاربران، برنامه های کاربردی و پردازش داده ها، آن را حفظ نماید.
3-2:ترکیب گوگل: نوآوری سخت افزار و نرم افزار
پدیده گوگل از انشقاق رخ می دهد هنگامیکه مهندسی نرم افزار pagRank و مهندسی سخت افزار اثر متقابلی بر یکدیگر دارند. تکنولوژی گوگل برنامههای کاربردی سوپر کامپیوترها را برای انبوه بازار عرضه می کند.
مهندس نرم افزار برای عملکرد بالاتر
مهندسی سخت افزار برای کاهش هزینه ها
(تصاویر و نمودار در فایل اصلی موجود است)
قسمت دیگر برروی سخت افزار متمرکز شده است. گوگل دارای رک های سرور، مکانی برای کابل ها، وسایل خنک کننده و لایههای مراکز داده است. بازدهیازهزینههای عملیاتی پائین تر است و توانایی مقیاس بندی، بعنوان درخواستی برای افزایش منابع محاسباتی است. با یک گردش سریع تر و حذف کارهای پردرد سر همانند پشتیبانی گرفتن از داده ها، ابداع سخت افزار گوگل، آن را به یک مزیت رقابتی تبدیل کرده است که بعضی رقبای آن می توانند دراواسط سال 2005 با آن برابری کنند.
Page Rank به همراه لایه های محاسباتی اضافی که در طی چند سال اضافه شد باعث مشکلات نرم افزاری قابل ملاحظه ای شده است. سیستم گوگل باید صفحات وب را پیدا می کرد و دوجین از آنها را اجرا می نمود، اگرنبودباید صدها صفحه وبراآنالیزمی کرد. یک لینک که به یک صفحه اشاره می کند را درنظر بگیرید، گوگل باید یک توالی ازآنها را برای 8 میلیارد صفحه وب نگهدارد.
برای یک صفحه وب تکی همراه با یک لینک که بهآناشارهمیکند مشکل جزئی وبی اهمیت است. یک لینک معادل یک اشاره گر می باشد، اما چه اتقاقی ممکن است رخ دهد زمانیکه یک سایت دارای 10000 لینک باشد که به آن اشاره می کند گاهی اوقات مشکل خیلی بزرگ میشود و محاسبات قابل توجهی لازم دارد. بعضی از این لینک ها احتمالاً از سایت هایی که دارای ترافیک بیشتری نسبت به بقیه هستند می آیند و بعضی دیگر ممکن است از سایت هایی که قصد مسخره کردن و دست انداختن گوگل برای تفریح و سرگرمی دارند آمده باشند. محاسبات مرتب کردن مقدار هر کدام از این لینک ها، به کار محاسباتی که به pageRank مربوط میشود اضافه می گردد که داشتن حساب این فاکتورها کاربزرگی است. اندازه گیری فاکتورهای مختلف بر ضد یکدیگر، برای یک صفحه اگر بدون کمک یک ماشین حساب انجام شود می تواند کار مشکلی باشد. این محاسبات را در نظر بگیرید و آن رابه دو میلیادر صفحه وب اعمال کنید و سپس وظایف محاسبات را به یک سوپر کامپیوتر بدهید.