उत्तर और उत्तर मिलने के बाद से मैं आपको एक वास्तविक उदाहरण के साथ समझाने की कोशिश करूँगा।
जब आप इलास्टिक्स खोज को डाउनलोड करते हैं और इसे शुरू करते हैं, तो आप एक इलास्टिक्स खोज नोड बनाते हैं जो मौजूदा क्लस्टर में शामिल होने की कोशिश करता है यदि उपलब्ध है या एक नया बनाता है। मान लीजिए कि आपने एक एकल नोड के साथ अपना नया क्लस्टर बनाया है, जिसे आपने अभी शुरू किया है। हमारे पास कोई डेटा नहीं है, इसलिए हमें एक इंडेक्स बनाने की आवश्यकता है।
जब आप एक इंडेक्स बनाते हैं (एक इंडेक्स स्वचालित रूप से तब बनता है जब आप पहले डॉक्यूमेंट को भी इंडेक्स करते हैं) तो आप यह परिभाषित कर सकते हैं कि यह कितने शार्प से बना होगा। यदि आप एक संख्या निर्दिष्ट नहीं करते हैं, तो इसमें शार्क की डिफ़ॉल्ट संख्या होगी: 5 प्राइमरी। इसका क्या मतलब है?
इसका मतलब है कि इलास्टिक्स खोज में 5 प्राथमिक शार्प्स होंगे, जिसमें आपका डेटा होगा:
____ ____ ____ ____ ____
| 1 | | 2 | | 3 | | 4 | | 5 |
|____| |____| |____| |____| |____|
हर बार जब आप किसी दस्तावेज़ को अनुक्रमित करते हैं, तो इलास्टिक्स खोज यह तय करेगी कि कौन सा प्राथमिक शार्क उस दस्तावेज़ को रखने वाला है और उसे वहाँ अनुक्रमित करेगा। प्राथमिक शार्क डेटा की एक प्रति नहीं है, वे डेटा हैं! एक से अधिक शार्क होने से एक मशीन पर समानांतर प्रसंस्करण का लाभ उठाने में मदद मिलती है, लेकिन पूरे बिंदु यह है कि अगर हम एक ही क्लस्टर पर एक और इलास्टिक्स खोज शुरू करते हैं, तो क्लस्टर के ऊपर भी समान तरीके से वितरित किया जाएगा।
नोड 1 के बाद उदाहरण के लिए केवल तीन धारियाँ होंगी:
____ ____ ____
| 1 | | 2 | | 3 |
|____| |____| |____|
चूंकि शेष दो शार्प्स को नए शुरू किए गए नोड में स्थानांतरित कर दिया गया है:
____ ____
| 4 | | 5 |
|____| |____|
ऐसा क्यों होता है? क्योंकि इलास्टिक्स खोज एक वितरित खोज इंजन है और इस तरह आप बड़ी मात्रा में डेटा का प्रबंधन करने के लिए कई नोड्स / मशीनों का उपयोग कर सकते हैं।
हर इलास्टिक्स खोज सूचकांक कम से कम एक प्राथमिक शार्क से बना होता है, जहां से डेटा संग्रहीत किया जाता है। हालांकि, प्रत्येक शार्ड एक लागत पर आता है, इसलिए यदि आपके पास एक नोड है और कोई विकास योग्य नहीं है, तो बस एक ही प्राथमिक शार्प के साथ रहें।
एक अन्य प्रकार का शार्क प्रतिकृति है। डिफ़ॉल्ट 1 है, जिसका अर्थ है कि प्रत्येक प्राथमिक शार्क को दूसरे शार्क को कॉपी किया जाएगा जिसमें समान डेटा होगा। प्रतिकृतियों का उपयोग खोज प्रदर्शन को बढ़ाने और असफलता के लिए किया जाता है। एक प्रतिकृति शार्प को कभी भी उसी नोड पर आवंटित नहीं किया जाएगा जहां संबंधित प्राथमिक है (यह मूल डेटा के समान डिस्क पर बैकअप डालने जैसा होगा)।
हमारे उदाहरण पर वापस जाएं, 1 प्रतिकृति के साथ, हमारे पास प्रत्येक नोड पर पूरा सूचकांक होगा, क्योंकि 2 प्रतिकृति शार्क पहले नोड पर आवंटित की जाएंगी और वे दूसरे नोड पर प्राथमिक शार्क के समान डेटा शामिल होंगे:
____ ____ ____ ____ ____
| 1 | | 2 | | 3 | | 4R | | 5R |
|____| |____| |____| |____| |____|
दूसरे नोड के लिए समान, जिसमें पहले नोड पर प्राथमिक दाढ़ी की एक प्रति शामिल होगी:
____ ____ ____ ____ ____
| 1R | | 2R | | 3R | | 4 | | 5 |
|____| |____| |____| |____| |____|
इस तरह के एक सेटअप के साथ, यदि एक नोड नीचे जाता है, तो आपके पास अभी भी पूरा सूचकांक है। प्रतिकृति शार्क स्वचालित रूप से प्राइमरी बन जाएगी और नोड विफलता के बावजूद ठीक से काम करेगा, इस प्रकार है:
____ ____ ____ ____ ____
| 1 | | 2 | | 3 | | 4 | | 5 |
|____| |____| |____| |____| |____|
जब से आपके पास है "number_of_replicas":1
, प्रतिकृतियां अब नहीं दी जा सकती हैं क्योंकि वे कभी भी उसी नोड पर आवंटित नहीं की जाती हैं जहां उनका प्राथमिक है। यही कारण है कि आपके पास 5 अनसाइनड शार्क, प्रतिकृतियां और क्लस्टर स्थिति YELLOW
इसके बजाय होगी GREEN
। कोई डेटा हानि नहीं, लेकिन यह बेहतर हो सकता है क्योंकि कुछ शार्क को असाइन नहीं किया जा सकता है।
जैसे ही छोड़ा गया नोड वापस आ गया है, यह फिर से क्लस्टर में शामिल हो जाएगा और प्रतिकृतियां फिर से सौंपी जाएंगी। दूसरे नोड पर मौजूदा शार्क को लोड किया जा सकता है लेकिन उन्हें अन्य शार्क के साथ सिंक्रनाइज़ करने की आवश्यकता होती है, क्योंकि नोड डाउन होने के दौरान ऑपरेशन की संभावना सबसे अधिक होती है। इस ऑपरेशन के अंत में, क्लस्टर की स्थिति बन जाएगी GREEN
।
आशा है कि यह आपके लिए चीजों को स्पष्ट करता है।