ठीक है, मुझे यकीन नहीं है कि यह MapReduce है जो समस्या को हल करता है, लेकिन यह निश्चित रूप से आपके द्वारा उठाए गए इन सभी प्रश्नों को हल करने के लिए MapReduce अकेले नहीं होगा। लेकिन यहाँ महत्वपूर्ण बातों पर ध्यान दिया जाना चाहिए, और यह विभिन्न मशीनों में इन सभी टीबी डेटा के प्रश्नों पर इस तरह की कम विलंबता को संभव बनाता है :
- वितरित कंप्यूटिंग: वितरित होने का मतलब यह नहीं है कि इंडेक्स केवल अलग-अलग मशीनों में वितरित किए जाते हैं, उन्हें वास्तव में अलग-अलग समूहों के साथ दोहराया जाता है, जो बहुत से उपयोगकर्ताओं को कम पुनर्प्राप्ति समय के साथ अलग-अलग प्रश्न करने की अनुमति देता है (हां, बड़ी कंपनियां उस के लिए खर्च कर सकती हैं। मशीनों की);
- कैशिंग: कैश्स निष्पादन समय को बहुत कम कर देते हैं, यह रेंगने वाले कदम के लिए हो, पृष्ठों की पुनः प्राप्ति के लिए, या परिणामों की रैंकिंग और निषेध के लिए;
- बहुत सारे ट्वीकिंग: उपरोक्त सभी और बहुत ही कुशल एल्गोरिदम / समाधान केवल तभी प्रभावी हो सकते हैं जब कार्यान्वयन भी कुशल हो। (हार्ड कोडित) अनुकूलन के टन हैं, जैसे कि संदर्भ, संपीड़न, कैशिंग का स्थानीयता; वे सभी आमतौर पर प्रसंस्करण के विभिन्न भागों के लिए सराहनीय हैं।
इसे देखते हुए, अपने प्रश्नों को हल करने का प्रयास करें:
लेकिन मैं इसकी कल्पना करता हूं कि हर संभव क्वेरी के परिणामों को अनुक्रमित किया जा सके
हां, यह होगा, और वास्तव में हर एक संभव क्वेरी के लिए परिणाम प्राप्त करना संभव है । दुनिया में शब्दों की एक अनंत संख्या है (भले ही आप मान लें कि केवल ठीक से वर्तनी की गई शर्तों को ही दर्ज किया जाएगा), और इन n -> inf
शब्दों ( 2^n
) से प्रश्नों की एक घातीय संख्या है । तो क्या किया जाता है? भंडारित करता है। लेकिन अगर बहुत सारे प्रश्न / परिणाम हैं, तो कौन से कैश हैं? कैशिंग नीतियां। सबसे अक्सर / लोकप्रिय / प्रासंगिक-के लिए उपयोगकर्ता प्रश्न कैश किए गए हैं।
Google के हार्डवेयर में हार्डवेयर विलंबता बहुत बड़ी नहीं होगी? भले ही Google में डेटा सभी को TB / SSDs में संग्रहीत किया गया हो
आजकल, ऐसे अत्यधिक विकसित प्रोसेसर के साथ, लोगों को लगता है कि हर संभव कार्य जो एक सेकंड (या कम) के भीतर समाप्त होना चाहिए, और जो कि बहुत अधिक डेटा से संबंधित है, को कई कोर और बहुत सारी मेमोरी के साथ बेहद शक्तिशाली प्रोसेसर द्वारा संसाधित किया जाना चाहिए। हालांकि, एक चीज सत्तारूढ़ बाजार पैसा है, और निवेशक इसे बर्बाद करने में दिलचस्पी नहीं रखते हैं। तो क्या किया जाता है?
वरीयता वास्तव में बहुत सारी मशीनों के लिए है, जिनमें से प्रत्येक सरल / सुलभ (लागत के संदर्भ में) प्रोसेसर का उपयोग करती है, जो कि क्लस्टर के भीड़ के निर्माण की कीमत कम करती है। और हाँ, यह काम करता है। मुख्य अड़चन हमेशा डिस्क पर फोड़ा जाता है, अगर आप प्रदर्शन के सरल मापों पर विचार करते हैं । लेकिन एक बार बहुत सारी मशीनें होने के बाद, कोई व्यक्ति हार्ड डिस्क पर काम करने के बजाय मुख्य मेमोरी तक चीजों को लोड कर सकता है।
मेमोरी कार्ड हमारे लिए महंगे हैं , केवल मनुष्य हैं, लेकिन वे उन उद्यमों के लिए बहुत सस्ते हैं जो एक साथ बहुत सारे कार्ड खरीदते हैं। चूंकि यह महंगा नहीं है, इसलिए इंडेक्स लोड करने और कैश को हाथ में रखने के लिए बहुत अधिक मेमोरी होना कोई समस्या नहीं है। और चूंकि बहुत सारी मशीनें हैं, सुपर फास्ट प्रोसेसर की कोई आवश्यकता नहीं है, क्योंकि आप विभिन्न स्थानों पर प्रश्नों को निर्देशित कर सकते हैं, और विशिष्ट भौगोलिक क्षेत्रों में भाग लेने के लिए जिम्मेदार मशीनों के समूह हैं , जो अधिक विशिष्ट डेटा कैशिंग, और यहां तक कि बेहतर प्रतिक्रिया के लिए अनुमति देता है। बार।
क्या MapReduce इस समस्या को हल करने में मदद करता है?
हालाँकि मुझे नहीं लगता कि MapReduce का उपयोग करना या न करना Google के अंदर प्रतिबंधित जानकारी है, लेकिन मैं इस बिंदु के बारे में बात नहीं कर रहा हूँ। हालाँकि, Google के MapReduce के कार्यान्वयन (जो निश्चित रूप से Hadoop नहीं है ) में बहुत सारे अनुकूलन होने चाहिए, जिनमें से कई पहलुओं पर चर्चा की गई है। इसलिए, MapReduce की वास्तुकला संभवतः यह मार्गदर्शन करने में मदद करती है कि कम्प्यूटेशंस को भौतिक रूप से कैसे वितरित किया जाता है, लेकिन क्वेरी समय में ऐसी गति को सही ठहराने के लिए कई अन्य बिंदुओं पर विचार किया जाना चाहिए।
ठीक है, इसलिए मैं समझता हूं कि लोकप्रिय खोजों को स्मृति में कैश किया जा सकता है। लेकिन अलोकप्रिय खोजों के बारे में क्या?
नीचे दिया गया ग्राफ़ इस बात का एक वक्र प्रस्तुत करता है कि किस प्रकार के प्रश्न होते हैं। आप देख सकते हैं कि तीन मुख्य प्रकार की खोजें हैं, उनमें से प्रत्येक में लगभग 1/3 प्रश्न हैं (वक्र के नीचे का क्षेत्र)। कथानक शक्ति कानून को दर्शाता है, और इस तथ्य को पुष्ट करता है कि छोटे प्रश्न सबसे लोकप्रिय हैं। कुछ शब्द रखने के बाद से प्रश्नों की दूसरी तीसरी प्रक्रिया अभी भी संभव है। लेकिन तथाकथित अस्पष्ट प्रश्नों का सेट , जिसमें आमतौर पर गैर-अनुभवी उपयोगकर्ताओं के प्रश्न शामिल होते हैं, प्रश्नों का एक नगण्य हिस्सा नहीं होते हैं।
और उपन्यास समाधान के लिए जगह है। चूंकि यह सिर्फ एक या दो प्रश्न नहीं हैं (लेकिन उनमें से एक तिहाई), उनके पास प्रासंगिक परिणाम होने चाहिए । आप कुछ में लिखते हैं, तो बहुत अस्पष्ट एक गूगल खोज में, यह अब नहीं ले परिणामों की सूची पर लौटने के लिए होगा, लेकिन सबसे शायद आप कुछ यह दिखा देंगे inferred आप कहना चाहते हैं। या यह केवल यह कह सकता है कि इस तरह के शब्दों के साथ कोई दस्तावेज़ नहीं था - या यहां तक कि आपकी खोज को 32 शब्दों में काट दिया (जो कि यहां एक यादृच्छिक परीक्षण में मेरे साथ हुआ था)।
दर्जनों प्रशंसनीय आंकड़े हैं, जो या तो कुछ शब्दों को अनदेखा कर सकते हैं, या क्वेरी को छोटे लोगों में तोड़ने की कोशिश कर सकते हैं, और सबसे लोकप्रिय परिणाम इकट्ठा कर सकते हैं । और इन सभी समाधानों को अनुकूलित किया जा सकता है और संभवत: एक सेकंड के कम प्रतीक्षा समय का सम्मान किया जा सकता है ? : डी