গুগল কীভাবে এত দ্রুত হতে পারে?


89

এমন প্রযুক্তি ও প্রোগ্রামিংয়ের সিদ্ধান্তগুলি কী কী যা গুগল এত তাড়াতাড়ি একটি কোয়েরি সরবরাহ করতে সক্ষম করে?

প্রতিবার আমি যখন কোনও কিছু অনুসন্ধান করি (প্রতিদিন কয়েকবারের মধ্যে একটি) এটি সর্বদা আমাকে বিস্মিত করে যে তারা কীভাবে দ্বিতীয় বারের চেয়ে কম বা তার কম সময়ে ফলাফলগুলি পরিবেশন করে। এটিকে সম্পাদন করে এমন জায়গায় তারা কী ধরণের কনফিগারেশন এবং অ্যালগরিদম থাকতে পারে?

পার্শ্ব দ্রষ্টব্য: এটি এক অপ্রতিরোধ্য চিন্তাভাবনা যে আমি যদি একটি ডেস্কটপ অ্যাপ্লিকেশন রেখে আমার মেশিনে এটি ব্যবহার করি তবে গুগলের চেয়ে অর্ধেক তত দ্রুত হয় না would আমি বলতে শেখা চালিয়ে যান।


এখানে দেওয়া দুর্দান্ত উত্তর এবং পয়েন্টারগুলির কয়েকটি:

উত্তর:


47

দেরী ডিস্ক অ্যাক্সেস দ্বারা নিহত হয়। সুতরাং এটি বিশ্বাস করা যুক্তিসঙ্গত যে প্রশ্নের উত্তরগুলির জন্য ব্যবহৃত সমস্ত ডেটা মেমোরিতে রাখা হয়েছে। এটি হাজার হাজার সার্ভারকে বোঝায়, প্রতিটি প্রতিটি বহু শারডের প্রতিরূপ তৈরি করে। অতএব অনুসন্ধানের জন্য সমালোচনামূলক পথটি তাদের ফ্ল্যাগশিপ বিতরণকারী সিস্টেম প্রযুক্তি জিএফএস, ম্যাপ্রেডিউস বা বিগ টেবিলের কোনওটিকেই আঘাত করার সম্ভাবনা নেই। এগুলি ক্রলর ফলাফলগুলি ক্রুডলি প্রক্রিয়া করতে ব্যবহৃত হবে।

অনুসন্ধানের সহজ কাজটি হ'ল শক্তিশালীভাবে সামঞ্জস্যপূর্ণ ফলাফল বা সম্পূর্ণ আপ টু ডেট ডেটার দরকার নেই, তাই গুগলের কোনও প্রশ্নের উত্তর দিতে বাধা দেওয়া হয়নি কারণ আরও একটি আপ-টু-ডেট অনুসন্ধানের ফলাফল পাওয়া গেছে।

সুতরাং একটি সম্ভাব্য আর্কিটেকচারটি বেশ সহজ: সামনের প্রান্তের সার্ভারগুলি কোয়েরিটি প্রক্রিয়া করে, এটি স্বাভাবিক করে তোলে (সম্ভবত স্টপ শব্দগুলি বাদ দিয়ে ইত্যাদি) তারপরে প্রতিরূপের উপসেটটি কোয়েরি স্পেসের সেই অংশটির মালিকানায় বিতরণ করে (একটি বিকল্প আর্কিটেকচারটি বিভক্ত করতে হয় ওয়েব পৃষ্ঠাগুলি দ্বারা ডেটা আপ, যাতে প্রতিটি প্রতিলিপি সেটগুলির মধ্যে একটিতে প্রতিটি প্রশ্নের জন্য যোগাযোগ করা প্রয়োজন)। অনেকগুলি, অনেকগুলি প্রতিলিপিগুলি সম্ভবত জিজ্ঞাসিত এবং দ্রুত প্রতিক্রিয়াগুলি জেতে। প্রতিটি প্রতিরূপে নথিগুলিতে একটি সূচক ম্যাপিং প্রশ্নগুলি (বা স্বতন্ত্র ক্যোয়ারির শর্তাদি) থাকে যা তারা মেমোরিতে খুব দ্রুত ফলাফল সন্ধান করতে ব্যবহার করতে পারে। যদি বিভিন্ন উত্স থেকে বিভিন্ন ফলাফল ফিরে আসে, তবে এইচটিএমএল থেকে বেরিয়ে আসার সাথে সাথে ফ্রন্ট-এন্ড সার্ভার তাদের র‌্যাঙ্ক করতে পারে।

মনে রাখবেন যে গুগল আসলে যা করেছে তার থেকে এটি সম্ভবত দীর্ঘ পথ থেকে পৃথক - তারা এই সিস্টেমটি থেকে জীবনকে ইঞ্জিনিয়ার করেছে তাই অদ্ভুত অঞ্চলগুলিতে আরও ক্যাস থাকতে পারে, অদ্ভুত সূচি এবং অন্যান্য সম্ভাব্য পার্থক্যের মধ্যে এক ধরণের মজাদার লোড-ব্যালেন্সিং স্কিম থাকতে পারে ।



22

আমি সত্যিই মজার বিষয় খুঁজে পেয়েছি যে গুগল বাস্তবে বায়োইনফরমেটিক্স দ্বারা চালিত হয় ('কে, আমি সেই মজার বিষয়টিকে খুঁজে পাই কারণ আমি বায়োইনফ… জিনিসযুক্ত)। আমাকে বিস্তারিত বলতে দাও.

খুব দ্রুত বায়োইনফর্ম্যাটিকসের কাছে বিশাল আকারের ছোট ছোট পাঠ্যগুলির অনুসন্ধানের চ্যালেঞ্জ ছিল। আমাদের জন্য, "বিশালাকার স্ট্রিং" অবশ্যই ডিএনএ। প্রায়শই একক ডিএনএ নয় বিভিন্ন প্রজাতি / ব্যক্তি থেকে প্রাপ্ত বিভিন্ন ডিএনএর একটি ডাটাবেস। ছোট গ্রন্থগুলি হ'ল প্রোটিন বা তাদের জিনগত প্রতিরূপ, একটি জিন। গণ্য জীববিজ্ঞানীদের প্রথম কাজটি বেশিরভাগ ক্ষেত্রে জিনের মধ্যে সমকামিতা সীমাবদ্ধ ছিল। এটি ইতিমধ্যে পরিচিত জিনগুলির মধ্যে সাদৃশ্যগুলি লক্ষ্য করে সদ্য পাওয়া জিনগুলির ক্রিয়াকলাপটি প্রতিষ্ঠার জন্য করা হয়।

এখন, এই ডিএনএ স্ট্রিংগুলি সত্যই খুব বড় হয়ে যায় এবং (ক্ষয়ক্ষতি!) অনুসন্ধান অত্যন্ত দক্ষতার সাথে করা উচিত। স্ট্রিং লুকিংয়ের আধুনিক তত্ত্বের বেশিরভাগটি এইভাবে গণ্য জীববিদ্যার প্রসঙ্গে বিকশিত হয়েছিল।

তবে বেশ কিছুকাল আগে প্রচলিত পাঠ্য অনুসন্ধান শেষ হয়ে গিয়েছিল। একটি নতুন পদ্ধতির প্রয়োজন ছিল যা সাবলাইনারের সময়ে বড় স্ট্রিংগুলি অনুসন্ধান করার অনুমতি দেয়, যা প্রতিটি একক চরিত্রের দিকে না তাকিয়ে। এটি আবিষ্কার করা হয়েছিল যে বড় স্ট্রিংটির প্রাক-প্রক্রিয়াজাতকরণ এবং এটির উপরে একটি বিশেষ সূচক ডেটা কাঠামো তৈরি করে সমাধান করা যেতে পারে। এই জাতীয় বিভিন্ন স্ট্রাকচার প্রস্তাব করা হয়েছে। প্রত্যেকের নিজস্ব শক্তি এবং দুর্বলতা রয়েছে তবে এটির একটি বিশেষত লক্ষণীয় কারণ এটি ধ্রুবক সময়ে দেখার সুযোগ দেয়। এখন, গুগল যে পরিমাণের ক্রম পরিচালনা করে সেগুলিতে এটি আর কঠোরভাবে সত্য নয় কারণ সার্ভারগুলিতে লোড ব্যালেন্সিং, প্রিপ্রোসেসিং এবং কিছু অন্যান্য অত্যাধুনিক জিনিসগুলি বিবেচনায় নিতে হবে।

কিন্তু সংক্ষেপে, তথাকথিত কিউ-গ্রাম সূচক ধ্রুব সময়ে একটি চেহারা অনুমতি দেয়। একমাত্র অসুবিধা: উপাত্ত কাঠামো হাস্যকরভাবে বড় হয়। মূলত, এর দিয়ে স্ট্রিং একটি লুকআপ অনুমতি দেওয়ার জন্য কুই অক্ষর (অত: পর নাম), এটি একটি টেবিলের প্রতিটি সম্ভাব্য সংযুক্তির জন্য একটি ক্ষেত্র আছে যা প্রয়োজন কুই অক্ষর (যে, কুই এস , যেখানে এস বর্ণমালার আকার , বলুন 36 (= 26 + 10))। অতিরিক্তভাবে, সূচিযুক্ত স্ট্রিংয়ে প্রতিটি বর্ণের পজিশনের জন্য একটি ক্ষেত্র থাকতে হবে (বা গুগলের ক্ষেত্রে, প্রতিটি ওয়েবসাইটের জন্য)।

নিছক আকার প্রশমিত করার জন্য, Google সম্ভবত একাধিক সূচকের ব্যবহার করবে (আসলে, তারা কি , বানান সংশোধক মত অফার পরিষেবাগুলিতে)। শীর্ষস্থানীয়রা অক্ষর স্তরে নয় পরিবর্তে শব্দ স্তরে কাজ করবে। এটি কিউ হ্রাস করে তবে এটি এসকে অসীম আকারে বড় করে তোলে তাই তাদের বিভিন্ন শব্দগুলির অসীম সংখ্যার সাথে লড়াই করতে হ্যাশিং এবং সংঘর্ষের সারণী ব্যবহার করতে হবে।

পরবর্তী স্তরে, এই হ্যাশ শব্দগুলি অন্যান্য সূচী ডেটা স্ট্রাকচারকে নির্দেশ করবে যা ঘুরেফিরে হ্যাশ অক্ষর ওয়েবসাইটগুলিকে নির্দেশ করবে।

দীর্ঘ গল্প সংক্ষেপে, এই কিউ- গ্রাম সূচক ডেটা স্ট্রাকচারগুলি যুক্তিযুক্তভাবে গুগলের অনুসন্ধান অ্যালগরিদমের সবচেয়ে কেন্দ্রীয় অংশ। দুর্ভাগ্যক্রমে, Q- গ্রাম সূচকগুলি কীভাবে কাজ করে তা বোঝানোর জন্য কোনও ভাল অ-প্রযুক্তিগত কাগজপত্র নেই । আমি জানি যে কেবলমাত্র প্রকাশনাতে এই জাতীয় সূচকটি কীভাবে কাজ করে তার বর্ণনা রয়েছে ... হায় হায় আমার ব্যাচেলর থিসিস


4
আমি 5 বছর ধরে বায়োইনফরম্যাটিক্সে ছিলাম এবং এর পরে অনুসন্ধান ইঞ্জিনগুলি - এবং কিউ-গ্রামগুলি আপনার মনে হয় ততটা গুরুত্বপূর্ণ নয়। গুগল যে ধরণের অনুসন্ধান করে তার জন্য মৌলিক ডেটা স্ট্রাকচার হ'ল (খুব, খুব মৌলিক স্তরে) ইনভার্টেড ইনডেক্স।
স্কয়ারকোগ

এটা ভুল মনে হচ্ছে। গুগল একটি উল্টো সূচীতে চলছে বা চলছে was কি-গ্রাম বাক্যাংশগুলির জন্য কার্যকর হবে তবে সাধারণভাবে নয়
স্টেফান সেভভ

@ স্টেফান: স্কয়ারকোগ দ্বারা ইতিমধ্যে একই মন্তব্য করা হয়েছিল - এবং আমি অস্বীকার করি না যে উল্টানো সূচকগুলি একটি বড় (এবং সম্ভবত এন-গ্রাম সূচকের চেয়ে অনেক বড়) ভূমিকা পালন করে। আমি এই প্রযুক্তিটি বেছে নিয়েছি কারণ এন-গ্রাম আমার একটি পোষা ডেটা কাঠামো, এবং আমি মনে করি মূল অন্তর্দৃষ্টি - গুগল দ্রুত কারণ এটি আসলে "অনুসন্ধান" করতে হবে না, এটি আরও কম বা সরাসরি প্রত্যক্ষ দর্শন করতে পারে - এই জাতীয় সূচকের উপর নির্ভর করে (এনবি: সম্ভবত এটি হ্যাশিংয়ের মাধ্যমে করা হয়েছে তবে এটি এখনও এন-গ্রাম সূচক)। এই সূচকটি উল্টানো হিসাবে ঘটেছিল তা আমার মতে ঘটনাগত (যদিও সম্ভবত গুগলের পক্ষে নয় ;-))।
কনরাড রুডল্ফ

5

এখানে দেওয়া দুর্দান্ত উত্তর এবং পয়েন্টারগুলির কয়েকটি:



4

সর্বাধিক গুরুত্বপূর্ণ বিলম্বগুলির মধ্যে একটি হ'ল ওয়েব সার্ভারগুলি আপনার ক্যোয়ারী ওয়েবসারকে পেয়েছে এবং প্রতিক্রিয়াটি ফিরে পাচ্ছে। এই বিলম্বিতা আলোর গতির সাথে আবদ্ধ, যা গুগলকেও মানতে হয়েছিল। তবে সারা বিশ্বে তাদের ডেটাসেন্টার রয়েছে। ফলস্বরূপ, তাদের যে কোনও একটিতে গড় দূরত্ব কম। এটি বিলম্বকে নিচে রাখে। অবশ্যই, পার্থক্যটি মিলি সেকেন্ডে পরিমাপ করা হয়, তবে প্রতিক্রিয়াটি 1000 মিলিসেকেন্ডের মধ্যে পৌঁছাতে হবে তা বিবেচনা করে।


4

সকলেই জানেন যে এটি অবশ্যই কবুতরটি ব্যবহার করে !

ওহ হ্যাঁ, ও ম্যাপ্রেডুস।


যদি তারা তাদের জন্য কাজ করতে ইঁদুর পায়, তবে খুব অযথা ও বিরক্তিকর দুটি প্রাণীর একটি চাকরি হবে ...
Xn0vv3r

আমি এই
হাহাহা

3

তাদের কাছে প্রায় হাজার হাজার পিসির কাস্টম ফাইল সিস্টেমে ইন্টারনেটের স্থানীয় কপি রয়েছে।


ডিস্ক-ভিত্তিক ফাইল সিস্টেমটিকে আঘাত করা বিলম্বের ক্ষেত্রে অনেক ব্যয় করতে পারে (অ্যামাজন ডায়নামোর সাথে এটি খুঁজে পেয়েছিল এবং এর জন্য কিছুটা নমনীয়তার ত্যাগ করেছে); আমি সন্দেহ করি যে সমালোচনামূলক পথে সমস্ত কিছুই স্মৃতিতে রাখা হয়েছে।
হেনরিআর

3

গুগল সেরা সেরা ভাড়া। আইটি-তে কিছু বুদ্ধিমান লোক গুগলে কাজ করে। তাদের কাছে হার্ডওয়্যার এবং ইঞ্জিনিয়ারদের কাছে ফেলে দেওয়ার জন্য কার্যত অসীম অর্থ রয়েছে।

তারা যে কাজগুলি করছে তার জন্য তারা অত্যন্ত অনুকূলিত স্টোরেজ প্রক্রিয়া ব্যবহার করে।

তাদের ভৌগলিকভাবে সার্ভার খামার রয়েছে।


3

একটি সাধারণীকরণ তালিকার একটি প্রচেষ্টা (এটি Google এর অভ্যন্তরীণ সরঞ্জামগুলিতে আপনার অ্যাক্সেস থাকার উপর নির্ভর করে না):

  1. প্যারাল্লাইজাইড অনুরোধগুলি (উদাহরণস্বরূপ ছোট সেটগুলিতে একক অনুরোধ বিচ্ছেদ করুন )
  2. অ্যাসিঙ্ক (যতটা সম্ভব সংক্ষিপ্ত আকারে তৈরি করুন, যেমন ব্যবহারকারীর অনুরোধটিকে অবরুদ্ধ করবে না)
  3. স্মৃতি / ক্যাশে (ডিস্ক I / O ধীর গতির, মেমরিতে যতটা সম্ভব রাখুন)
  4. প্রাক-গণনা (হাতের আগে যতটা সম্ভব কাজ করুন, ব্যবহারকারীর ডেটা / প্রসেসিং জিজ্ঞাসা করার জন্য অপেক্ষা করবেন না)
  5. আপনার ফ্রন্ট-এন্ড এইচটিএমএল সম্পর্কে যত্নশীল (ইয়স্লো এবং বন্ধুরা দেখুন)

2

গুগল রিসার্চ হোমপেজে আপনি কিছু গুগল ছেলের লেখা গবেষণামূলক কাগজপত্র সম্পর্কে কিছু পয়েন্টার খুঁজে পেতে পারেন । আপনি এর explanatio সঙ্গে শুরু করা উচিত গুগল ফাইল সিস্টেম এবং মানচিত্র / অ্যালগরিদম কমাতে চেষ্টা করুন এবং তা বুঝতে Google পৃষ্ঠাগুলি পিছনে ঘটছে করতে।



1

হার্ডওয়্যার

প্রচুর এবং হার্ডওয়ার প্রচুর। তারা তাদের সার্ভার ফার্ম হিসাবে পণ্য পিসিগুলির বিশাল ক্লাস্টার ব্যবহার করে।


কেবল 'বিশাল' স্পষ্ট করতে: কয়েক হাজার সার্ভার। আমার ধারণা Google এর বাইরের কেউই আসল নম্বরটি জানে না এবং এটি অবশ্যই সর্বদা পরিবর্তন করে চলেছে।
সার্জিও আকোস্টা

1

ট্রমাপনি ঠিক আছে। ভারসাম্য / কেচিং এবং ভোইলার জন্য প্রচুর সার্ভার এবং স্মার্ট আর্কিটেকচার আপনি 1 সেকেন্ডের নীচে কোয়েরি চালাতে পারেন। নেটে গুগল পরিষেবাগুলির আর্কিটেকচার বর্ণনা করার জন্য প্রচুর নিবন্ধ ছিল। আমি নিশ্চিত যে আপনি এটি গুগলের মাধ্যমে খুঁজে পেতে পারেন :)


1

হেনরিআর সম্ভবত সঠিক।

মানচিত্র হ্রাস হ্রাস নিজেই অনুসন্ধানের জন্য ভূমিকা পালন করে না, তবে কেবল সূচীকরণের জন্য ব্যবহৃত হয়। পরীক্ষা করে দেখুন ম্যাপ সহ এই ভিডিওটি সাক্ষাত্কার আবিষ্কর্তাদের কমাতে



0

এবং অ্যালগরিদমগুলি যে হার্ডওয়্যার শক্তিটি ব্যবহার করতে পারে। উদাহরণস্বরূপ ম্যাপ্রেডস পছন্দ করুন ।


মানচিত্রে প্রশ্নের জবাব দিতে ব্যবহৃত হয় না।
এমসাল্টারস

ম্যাপ্রেডিউস মেশিনের একটি বৃহত্ ক্লাস্টারে চলে এবং এটি অত্যন্ত স্কেলযোগ্য: একটি সাধারণ মানচিত্রের গণনা হাজার হাজার মেশিনে অনেক টেরাবাইট ডেটা প্রক্রিয়াকরণ করে। গুগলের ক্লাস্টারে প্রতিদিন
ম্যাপ্রেইডসের কয়েকশো

ম্যাপ্রেইডুস প্রায় নিশ্চিতভাবেই ক্রমহীন ডেটা সূচক হিসাবে ব্যবহৃত হয়। এটি যদি অনুসন্ধানের সমালোচনামূলক পথে থাকে তবে আমি খুব অবাক হব। মানচিত্রের কাজ বন্ধ করে দেওয়া সত্যিই দেরি করে ফেলবে।
হেনরিআর

হেনরি - তারা সম্ভবত এটি দিকনির্দেশ / মানচিত্রের জন্য ব্যবহার করছে। তবে হ্যাঁ, সাধারণ ক্ষেত্রে। আপনি চান না যে কোনও নিয়মিত ব্যবহারকারীর প্রশ্নের জবাব দেওয়ার জন্য কোনও হার্ড গণনা ঘটুক।
স্কয়ারকোগ

0

গুগল ক্লাস্টার কীভাবে কাজ করে সে সম্পর্কে যদি আপনি আরও বিশদে আগ্রহী হন তবে আমি তাদের এইচডিএফএসের এই ওপেন সোর্স বাস্তবায়নের পরামর্শ দেব ।

এটি গুগল দ্বারা ম্যাপ্রেডস উপর ভিত্তি করে ।


এইচডিএফএস একটি বিতরণ ফাইল সিস্টেম। ম্যাপ্রেডস ক্লোনটিকে হাদুপ বলা হয় এবং এটি এইচডিএফএস বা আপনার স্থানীয় ফাইল সিস্টেমে চালাতে পারে।
স্কয়ারকোগ

0
  1. মাল্টি স্টেজড ডেটা স্টোরেজ, প্রসেসিং এবং পুনরুদ্ধার

  2. উপরোক্ত কাজগুলির EFFICIENT বিতরণ (1000 এর মেশিনগুলির 100 এর)

  3. কাঁচা ডেটা এবং প্রক্রিয়াজাত ফলাফলগুলি সংরক্ষণ করার জন্য ভাল কাঠামো

  4. ফলাফলগুলি পুনরুদ্ধার করার জন্য ভাল কাঠামো

এই সমস্ত কীভাবে করা হয় তা আপনার প্রশ্নের সংক্ষিপ্ত সমস্ত লিঙ্কের সংক্ষিপ্তসার হিসাবে জানানো হয়

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.