caching - एक वितरित कैश क्या है?




concept (2)

  1. हां, सर्वर पर आधे डेटा, और सर्वर बी पर आधा एक वितरित कैश होगा। डेटा वितरित करने के कई तरीके हैं, हालांकि चाबियों के कुछ प्रकार के हैंशिंग सबसे लोकप्रिय लगते हैं।

  2. शब्द सर्वर और नोड आम तौर पर अदला-बदले होते हैं। एक नोड आमतौर पर कुछ संग्रह की एक इकाई होती है, जिसे अक्सर क्लस्टर कहा जाता है। एक सर्वर आमतौर पर हार्डवेयर का एक टुकड़ा होता है। Erlang में, आप एक सर्वर पर erlang रनटाइम के कई उदाहरण चला सकते हैं, और इस प्रकार आपके पास एकाधिक एर्लंग नोड्स होंगे ... लेकिन आम तौर पर आप अधिक इष्टतम शेड्यूलिंग के लिए प्रति सर्वर एक नोड रखना चाहते हैं। (गैर-वितरित भाषाओं और प्लेटफार्मों के लिए आपको अपनी आवश्यकताओं के आधार पर अपनी प्रक्रियाओं का प्रबंधन करना होगा।)

  3. यदि कोई सर्वर नीचे चला जाता है, और यह एक कैश सर्वर है, तो डेटा को इसके मूल स्रोत से आना होगा। ईजी: एक कैश आमतौर पर एक स्मृति आधारित डेटाबेस है जो त्वरित पुनर्प्राप्ति के लिए डिज़ाइन किया गया है। कैश में डेटा केवल इतना ही लंबे समय तक चिपक जाता है क्योंकि इसका नियमित रूप से उपयोग किया जा रहा है, और अंत में शुद्ध हो जाएगा। लेकिन वितरित सिस्टम के लिए जहां आपको दृढ़ता की आवश्यकता होती है, एक आम तकनीक कई प्रतियां होती है। ईजी: आपके पास सर्वर ए, बी, सी, डी, ई, और एफ है। डेटा 1 के लिए, आप इसे ए पर डाल देंगे, और फिर बी और सी कोचबेस और रीक पर एक प्रति ऐसा करेंगे। डेटा 2 के लिए, यह बी पर हो सकता है, और उसके बाद सी और डी पर प्रतियां हो सकती हैं। इस तरह यदि कोई भी सर्वर नीचे चला जाता है तो आपके पास अभी भी दो प्रतियां हैं।

मैं वितरित कैश की अवधारणा के बारे में उलझन में हूं। मुझे पता है कि यह Google खोज से क्या है। एक वितरित कैश एकाधिक सर्वरों का विस्तार कर सकता है ताकि यह आकार और लेनदेन क्षमता में बढ़ सके। हालांकि, मैं वास्तव में समझ में नहीं आता कि यह कैसे काम करता है या यह डेटा कैसे वितरित करता है।

उदाहरण के लिए, मान लें कि हमारे पास डेटा 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 और 2 कैश सर्वर ए और बी हैं । यदि हम वितरित कैश का उपयोग करते हैं, तो संभावित समाधान में से एक यह है कि डेटा 1, 3, 5, 7, 9 कैश सर्वर ए में संग्रहीत हैं, और 2, 4, 6, 8, 10 कैश सर्वर बी में संग्रहीत हैं।

तो क्या यह सही है या मैंने इसे गलत समझा?

दूसरा सवाल यह है कि मैंने आमतौर पर शब्द नोड शब्द सुना। यह क्या है? उपर्युक्त उदाहरण में, सर्वर ए एक सर्वर नोड है, है ना?

तीसरा सवाल, यदि कोई सर्वर (मान लें कि सर्वर ए) नीचे चला जाता है, तो हम इसके बारे में क्या कर सकते हैं? मेरा मतलब है कि ऊपर मेरा उदाहरण सही है, हम सर्वर ए नीचे होने पर डेटा 1, 3, 5, 7, 9 कैश से नहीं प्राप्त कर सकते हैं, तो इस मामले में कैश सर्वर क्या कर सकता है?


मैं अब कुछ समय के लिए वितरित कैशिंग समाधान का उपयोग कर रहा हूं (एनसीएचक, ऐपफैब्रिक इत्यादि) और मैं वितरित कैशिंग के साथ अपने अनुभव के आधार पर सभी तीन सवालों के जवाब देने जा रहा हूं।

1: वितरित कैशिंग समाधान आपको कैश क्लस्टर बनाकर सभी सर्वरों पर डेटा रखने की अनुमति देता है। मान लें कि आपके पास 2 कैश सर्वर (सर्वर नोड्स) हैं और आपने अपने कैश में 10 आइटम जोड़े हैं। आदर्श रूप से 5 आइटम दोनों सर्वर नोड्स में उपस्थित होना चाहिए क्योंकि डेटा कैश आपके कैश क्लस्टर में सर्वरों की संख्या के बीच वितरित हो जाता है। यह आमतौर पर हैशिंग और बुद्धिमान डेटा वितरण एल्गोरिदम की सहायता से हासिल किया जाता है। नतीजतन, आपके डेटा अनुरोध लोड को कैश क्लस्टर में अधिक सर्वर के रूप में सभी कैश सर्वरों और ट्रांसनेशनल क्षमता में आपकी रैखिक वृद्धि के बीच विभाजित किया जाता है।

2: कैश क्लस्टर में कई सर्वर मशीनें हो सकती हैं जिन्हें सर्वर नोड भी कहा जाता है। हां, सर्वर ए आपके उदाहरण में एक सर्वर नोड या सर्वर मशीन है।

3: आमतौर पर वितरित कैशिंग सिस्टम प्रतिकृति समर्थन का उपयोग कर बहुत विश्वसनीय हैं। यदि एक या अधिक सर्वर नीचे जाते हैं और आपके पास प्रतिकृति चालू होती है तो कोई डेटा खो या डाउनटाइम नहीं होगा। एनसीएके में प्रतिकृति टोपोलॉजी और प्रतिकृति टोपोलॉजी के विभाजन जैसे इस से निपटने के लिए अलग-अलग टाइपोग्राफी हैं, जहां प्रत्येक सर्वर का डेटा दूसरे सर्वर पर भी दोहराया जाता है। यदि एक सर्वर नीचे चला जाता है, तो उस सर्वर का प्रतिकृति डेटा स्वचालित रूप से जीवित सर्वर नोड से उपलब्ध कराया जाता है।

आपके उदाहरण में, सर्वर ए (1, 3, 5, 7, 9) का डेटा सर्वर बी (2, 4, 6, 8, 10) और इसके विपरीत के लिए दोहराया गया है। यदि सर्वर ए नीचे चला जाता है, तो सर्वर बी पर मौजूद सर्वर ए का डेटा उपलब्ध कराया जाएगा और वहां से उपयोग किया जाएगा ताकि कोई डेटा न हो। इसलिए यदि सर्वर ए नीचे चला जाता है और डेटा (1) के लिए आवेदन अनुरोध, तो यह डेटा सर्वर बी से पुनर्प्राप्त हो जाएगा क्योंकि सर्वर बी में सर्वर ए के सभी डेटा का बैकअप शामिल है। यह आपके अनुप्रयोगों के लिए निर्बाध है और कैशिंग द्वारा स्वचालित रूप से प्रबंधित किया जाता है प्रणाली।





concept