কীভাবে একটি বিশাল ডাটাবেসে কোনও ক্যোয়ারী নগণ্য বিলম্ব সহ ফিরে আসে?


12

উদাহরণস্বরূপ, গুগলে কোনও কিছু অনুসন্ধান করার সময়, ফলাফলগুলি তাত্ক্ষণিকভাবে ফিরে আসে।

আমি বুঝতে পেরেছি যে গুগল অ্যালগোরিদম ইত্যাদির সাথে পৃষ্ঠাগুলি বাছাই করে এবং সূচনা করে তবে প্রতিটি একক সম্ভাব্য ক্যোয়ারির ফলাফলের সূচীকরণের জন্য এটি অপরিহার্য কল্পনা করি (এবং ফলাফলগুলি ব্যক্তিগতকৃত হয়, যা এটি আরও বেশি অক্ষম রেন্ডার করে)?

তদুপরি, গুগলের হার্ডওয়ারে হার্ডওয়্যারটির বিলম্বিতা কী বিশাল হবে না? এমনকি গুগলের ডেটাগুলি সমস্ত টিবি / এস এসএসডি-তে সঞ্চিত থাকলেও, আমি প্রক্রিয়াটির নিখুঁত পরিমাণের ভিত্তিতে হার্ডওয়ারের বিলম্বকে বিশাল বলে মনে করি।

মানচিত্র কি এই সমস্যা সমাধানে সহায়তা করে?

সম্পাদনা: ঠিক আছে, তাই আমি বুঝতে পারি যে জনপ্রিয় অনুসন্ধানগুলি মেমরিতে ক্যাশে করা যেতে পারে। কিন্তু অ-জনপ্রিয় অনুসন্ধানগুলি কী? এমনকি আমি পরিচালিত সর্বাধিক অস্পষ্ট অনুসন্ধানের জন্যও আমি মনে করি না যে অনুসন্ধানটি কখনও সেকেন্ডের চেয়ে 5 সেকেন্ডের বেশি বলে মনে হয়েছে। এটা কিভাবে সম্ভব?

উত্তর:


13

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

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

এটি বিবেচনা করে, আপনার প্রশ্নগুলি সমাধান করার চেষ্টা করা যাক:

তবে আমি অনুমান করি যে এটি প্রতিটি একক সম্ভাব্য ক্যোয়ারির ফলাফলকে সূচিকৃত হতে পারে fe

হ্যাঁ, এটি হবে এবং প্রতিটি একক সম্ভাব্য ক্যোয়ারির জন্য ফলাফল পাওয়া অসম্ভব । বিশ্বে অজস্র শর্তাদি রয়েছে (এমনকি যদি আপনি ধরে নেন যে কেবলমাত্র সঠিকভাবে বানানের শর্তাদি প্রবেশ করা হবে), এবং এই n -> infপদগুলি ( 2^n) থেকে তাত্পর্যপূর্ণ সংখ্যা রয়েছে eries তাহলে কি করা হয়? ক্যাশে। তবে যদি এতগুলি প্রশ্ন / ফলাফল থাকে তবে কোনটি ক্যাশে করবেন? ক্যাশিং পলিসি। ব্যবহারকারীদের জন্য সর্বাধিক ঘন ঘন / জনপ্রিয় / প্রাসঙ্গিক সম্পর্কিত প্রশ্নগুলি ক্যাশে করা হয়।

গুগলের হার্ডওয়ারে হার্ডওয়্যারটির বিলম্বিতা কী বিশাল হবে না? এমনকি গুগলের ডেটা সবগুলি টিবি / এসএসডি-তে সঞ্চিত ছিল

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

পছন্দটি হ'ল প্রচুর মেশিন রাখার জন্য, প্রতিটি সহজ / অ্যাক্সেসযোগ্য (খরচের শর্তে) প্রসেসর ব্যবহার করে, যা সেখানে প্রচুর ক্লাস্টার তৈরির দাম কমিয়ে দেয়। এবং হ্যাঁ, এটি কাজ করে। আপনি যদি পারফরম্যান্সের সাধারণ পরিমাপ বিবেচনা করেন তবে প্রধান বাধা সবসময় ডিস্কে সিদ্ধ হয় । তবে একবারে অনেকগুলি মেশিন আসার পরে, হার্ড ডিস্কগুলিতে কাজ না করে কেউ প্রধান মেমোরি পর্যন্ত জিনিসগুলি লোড করতে পারে।

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

মানচিত্র কি এই সমস্যা সমাধানে সহায়তা করে?

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

ঠিক আছে, তাই আমি বুঝতে পারি যে জনপ্রিয় অনুসন্ধানগুলি মেমরিতে ক্যাশে করা যেতে পারে। কিন্তু অ-জনপ্রিয় অনুসন্ধানগুলি কী?

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

ভারী লেজ বন্টন

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

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


আমি অন্য ক্যোয়ারী যুক্ত করার জন্য প্রশ্নটি সম্পাদনা করেছি।
1414

@ এখানে আমি আপনার সম্পাদনা সম্বোধন করার চেষ্টা করেছি; আশা করি এটি প্রশ্নের উত্তর দিতে সহায়তা করবে।
রুবেন্স

10

রিয়েল-টাইম কোনও কিছুর সাথে মানচিত্রের কিছুই করার নেই। এটি একটি ব্যাচ-ওরিয়েন্টেড প্রসেসিং ফ্রেমওয়ার্ক যা কিছু অফলাইন কাজের জন্য উপযুক্ত, যেমন ইটিএল এবং সূচক বিল্ডিং। গুগল এখন বেশিরভাগ কাজের জন্য মানচিত্রের বাইরে চলে গেছে, এমনকি হ্যাডোপ বাস্তুতন্ত্রও তা করছে।

কম বিলম্বের উত্তরটি সাধারণত মেমরির পূর্ববর্তী সূচকগুলি রাখা ind ডিস্কের যে কোনও জিনিস স্পর্শ করে তা দ্রুত এবং স্কেল করা শক্ত। এভাবেই নতুন প্রজন্মের মত Hadoop এর ভিত্তিক এসকিউএল ইঞ্জিন হয় Impala মত MapReduce ভিত্তিক অবকাঠামো তুলনায় এত গতি পেতে মধুচক্র , উদাহরণস্বরূপ।

অনুসন্ধান অবকাঠামো প্রতিটি একক ক্যোয়ারির ফলাফলগুলিকে ক্যাশে করতে পারে না। তবে এটি অবশ্যই মধ্যবর্তী ফলাফলগুলি বা শীর্ষ প্রশ্নের জন্য আরও সম্পূর্ণ ফলাফলকে ক্যাশে করতে পারে। সামান্য ক্যাচিংয়ের মাধ্যমে আপনি সমস্ত প্রশ্নের উল্লেখযোগ্য সংখ্যালঘুতে ফলাফল পরিবেশন করতে পারেন।

সার্ভারগুলিতে অনুসন্ধানও বিভক্ত। সুতরাং একটি মেশিন ফলাফলের একটি অংশ পেতে প্রত্যেককে 100 জনকে প্রতিনিধি করতে এবং তারপরে তাদের একত্রিত করতে পারে।

আপনি কিছুটা ডিগ্রি আনতে পারেন can গুগল আক্ষরিকভাবে অনুসন্ধান ফলাফলের হাজার পৃষ্ঠাগুলি গঠন করে না; এটি ঠিক প্রথম পৃষ্ঠা পেতে হবে।

মনে রাখবেন যে গুগলের বিশ্বজুড়ে কয়েক মিলিয়ন কম্পিউটার রয়েছে। আপনার প্রশ্নগুলি ভৌগোলিকভাবে আপনার নিকটবর্তী কোনও ডেটা কেন্দ্রে যাচ্ছে এবং এটি কেবল আপনার ভৌগলিক পরিবেশন করছে। এটি বেশিরভাগ বিলম্বকে কাটায়, যা নেটওয়ার্ক এবং ডেটা সেন্টারে প্রক্রিয়াকরণের সময় নয়।


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

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

4

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

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

সাধারণ শব্দগুলির জন্য অনুসন্ধানগুলি সহজেই ক্যাশে করা যায়; এবং প্রিপ্রোসেসিংয়ের মাধ্যমে আপনি শীর্ষ 10 কে ফলাফলের একটি তালিকা তৈরি করতে পারেন এবং তারপরে ব্যবহারকারীর প্রোফাইল অনুসারে এগুলি পুনরায় সংশোধন করতে পারেন। একটি "সঠিক" উত্তর গণনা করে লাভ করার মতো কিছুই নেই। শীর্ষ 10 কে ফলাফলের দিকে তাকানো সম্ভবত যথেষ্ট যথেষ্ট; সঠিক উত্তর নেই; এবং যদি 10001 পজিশনে কোথাও এর আরও ভাল ফলাফলটি মিস হয়, তবে কেউই জানতে পারবে না বা লক্ষ্য করবে না (বা যত্ন করবে)। এটি সম্ভবত প্রিপ্রোসেসিংয়ে নিচে নামিয়ে দেওয়া হয়েছিল এবং এটি শীর্ষ 10 টির মধ্যে তৈরি করতে পারত না যা শেষে ব্যবহারকারীর সামনে উপস্থাপিত হয় (বা শীর্ষ 3, ব্যবহারকারী আসলে দেখায়)

অন্যদিকে দুর্লভ শর্তগুলিও খুব একটা চ্যালেঞ্জ নয় - তালিকার একটিতে কয়েকটি মিলে কয়েকটি মিল রয়েছে, এবং আপনি অন্য সকলকে তত্ক্ষণাত বাতিল করতে পারেন।

আমি এই নিবন্ধটি পড়ার পরামর্শ দিচ্ছি:

বড় আকারের হাইপারটেক্সটুয়াল ওয়েব সার্চ ইঞ্জিন
সের্গেই ব্রিন অ্যান্ড লরেন্স পেজ
কম্পিউটার সায়েন্স বিভাগ, স্ট্যানফোর্ড বিশ্ববিদ্যালয়, স্ট্যানফোর্ড, সিএ 94305 এর এনাটমি
omy

এবং হ্যাঁ, এটি গুগল প্রতিষ্ঠাতা যারা এটি লিখেছিলেন। এটি সর্বশেষতম রাষ্ট্র নয়, তবে এটি ইতিমধ্যে বেশ বড় আকারে কাজ করবে।

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