वितरित डेटाबेस क्या है?
वितरित डेटाबेस विभिन्न स्थानों पर कई सर्वरों (नोड्स) में डेटा फैलाता है। CAP प्रमेय कहता है कि आप तीन में से केवल दो गुणों की गारंटी दे सकते हैं: संगतता (हर रीड नवीनतम राइट देखता है), उपलब्धता (हर अनुरोध को प्रतिक्रिया मिलती है), और विभाजन सहनशीलता (नेटवर्क विभाजन के बावजूद सिस्टम काम करता है)।
यह क्यों मायने रखता है? Google से Netflix तक हर प्रमुख इंटरनेट सेवा वितरित डेटाबेस पर निर्भर करती है। संगतता और उपलब्धता के बीच ट्रेडऑफ़ को समझना अरबों उपयोगकर्ताओं की सेवा करने वाले विश्वसनीय, स्केलेबल सिस्टम बनाने के लिए आवश्यक है।
📖 गहराई से जानें
उपमा 1
5 शहरों में शाखाओं वाली एक पुस्तकालय प्रणाली की कल्पना करें, सभी एक ही कैटलॉग साझा कर रहे हों। जब कोई शाखा ए में किताब की जांच करता है, तो अन्य सभी शाखाओं को अपने रिकॉर्ड अपडेट करने की आवश्यकता होती है। यदि शाखा सी की फ़ोन लाइन बंद हो जाती है (एक नेटवर्क विभाजन), तो शाखा सी अभी भी पुस्तक को उपलब्ध के रूप में दिखा सकती है - यह एक निरंतरता की समस्या है। जब तक शाखा सी फिर से जुड़ नहीं जाती (स्थिरता का चयन करते हुए), आप सभी ऋणों को लॉक कर सकते हैं, या प्रत्येक शाखा को स्वतंत्र रूप से ऋण देना जारी रख सकते हैं और बाद में समाधान कर सकते हैं (उपलब्धता का चयन करते हुए)।
उपमा 2
विभिन्न देशों में दोस्तों के साथ समूह चैट के बारे में सोचें। जब आप कोई संदेश भेजते हैं, तो सभी को उसे उसी क्रम में देखना चाहिए। लेकिन अगर किसी का इंटरनेट बंद हो जाता है, तो वे संदेश चूक जाते हैं और पुरानी जानकारी का जवाब दे सकते हैं - जिससे परस्पर विरोधी बातचीत सूत्र बन जाते हैं। वितरित डेटाबेस बड़े पैमाने पर इस सटीक समस्या का सामना करते हैं, और जब हर कोई फिर से जुड़ता है तो अराजकता को सुलझाने के लिए वेक्टर घड़ियों और सीआरडीटी जैसी तकनीकों का उपयोग करता है।
🎯 सिम्युलेटर टिप्स
शुरुआती
5 नोड्स और प्रतिकृति कारक 3 से शुरू करें - इसका मतलब है कि डेटा का प्रत्येक टुकड़ा 5 में से 3 नोड्स पर संग्रहीत है
मध्यम
राइट कंसिस्टेंसी ऑल बनाम वन की तुलना करें - ऑल धीमा है लेकिन गारंटी देता है कि प्रत्येक प्रतिकृति में नवीनतम डेटा है
विशेषज्ञ
अनसुलझे विवादों को देखने के लिए विभाजन के दौरान वेक्टर घड़ियों को अक्षम करें और समवर्ती लेखन को ट्रिगर करें
📚 शब्दावली
🏆 प्रमुख व्यक्ति
Eric Brewer (2000)
यूसी बर्कले में सीएपी प्रमेय तैयार किया गया, जिसमें एक साथ स्थिरता, उपलब्धता और विभाजन सहिष्णुता की गारंटी देने की असंभवता को साबित करके वितरित डेटाबेस डिज़ाइन को मूल रूप से आकार दिया गया।
Leslie Lamport (1998)
पैक्सोस सर्वसम्मति एल्गोरिदम बनाया और तार्किक घड़ियों, लैमपोर्ट टाइमस्टैम्प और बीजान्टिन जनरल्स समस्या जैसी अवधारणाओं के साथ वितरित सिस्टम के सिद्धांत का बीड़ा उठाया।
Diego Ongaro (2014)
स्टैनफोर्ड में राफ्ट सर्वसम्मति एल्गोरिथ्म को डिज़ाइन किया गया, जिससे वितरित सर्वसम्मति को वास्तविक दुनिया प्रणालियों जैसे कि आदि और कॉकरोचडीबी के लिए समझने योग्य और व्यावहारिक बनाया गया।
Werner Vogels (2007)
अमेज़ॅन के डायनमो के डिजाइन का नेतृत्व किया, जिसने लगातार हैशिंग, वेक्टर घड़ियां और मैला कोरम पेश किया - कैसंड्रा, रीक और संपूर्ण NoSQL आंदोलन को प्रेरित किया।
Jeff Dean & Wilson Hsieh (2012)
सह-डिज़ाइन किया गया Google स्पैनर, ट्रूटाइम एपीआई और जीपीएस/परमाणु घड़ी सिंक्रनाइज़ेशन का उपयोग करके बाहरी रूप से सुसंगत लेनदेन वाला पहला विश्व स्तर पर वितरित डेटाबेस
Marc Shapiro (2011)
आईएनआरआईए में अग्रणी संघर्ष-मुक्त प्रतिकृति डेटा प्रकार (सीआरडीटी), समन्वय-मुक्त अंतिम स्थिरता के लिए गणितीय आधार प्रदान करता है
🎓 शिक्षण संसाधन
- Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services [paper]
सीएपी प्रमेय का औपचारिक प्रमाण, वितरित प्रणालियों के लिए मौलिक असंभवता परिणाम स्थापित करना (ACM SIGACT News, 2002) - Dynamo: Amazon's Highly Available Key-value Store [paper]
लगातार हैशिंग, वेक्टर घड़ियों और मैला कोरम (एसओएसपी 2007) का उपयोग करके अंततः लगातार वितरित भंडारण पर अमेज़ॅन का प्रभावशाली पेपर - Spanner: Google's Globally Distributed Database [paper]
Google का ट्रूटाइम-आधारित विश्व स्तर पर सुसंगत डेटाबेस जीपीएस और परमाणु घड़ी सिंक्रनाइज़ेशन (ओएसडीआई 2012) के माध्यम से बाहरी स्थिरता प्राप्त कर रहा है। - In Search of an Understandable Consensus Algorithm (Raft) [paper]
समझने योग्य बनाने के लिए डिज़ाइन किया गया राफ्ट सर्वसम्मति एल्गोरिथ्म, अब आदि, कॉकरोचडीबी और टीआईकेवी में उपयोग किया जाता है (USENIX ATC 2014) - Designing Data-Intensive Applications [article]
वितरित सिस्टम के बुनियादी सिद्धांतों, प्रतिकृति, विभाजन और स्थिरता मॉडल के लिए मार्टिन क्लेपमैन की व्यापक मार्गदर्शिका - Jepsen.io [article]
वास्तविक विफलता स्थितियों के तहत वितरित डेटाबेस शुद्धता दावों का काइल किंग्सबरी का कठोर परीक्षण और विश्लेषण - The Raft Consensus Algorithm Visualization [article]
चरण-दर-चरण नेता चुनाव और लॉग प्रतिकृति के साथ रफ़ सर्वसम्मति एल्गोरिथ्म का इंटरैक्टिव विज़ुअलाइज़ेशन