इस प्रोजेक्ट के बारे में
Kahuna एक सर्वर क्लस्टर है जो सामान्य वितरित सिस्टम समस्याओं को हल करने के लिए बनाया गया है: वितरित लॉकिंग, संगत कुंजी/मान भंडारण, और अभेद्य क्रमित आईडी क्रम। यह डेवलपर्स को विश्वसनीय और स्केलेबल वितरित अनुप्रयोग बनाने के लिए तैयार प्राइमिटिव्स प्रदान करता है।
मुख्य क्षमताएँ:
- वितरित लॉकिंग: दौड़ की स्थितियों को रोकने और डेटा सांगत्य रखने के लिए नोड्स में साझा संसाधनों तक पहुँच को समन्वयित करती है।
- कुंजी/मान स्टोर: फ़ॉल्ट टॉलरेंस और उच्च थ्रूपुट के साथ क्लस्टर में संरचित डेटा को संग्रहीत और पुनर्प्राप्त करता है, जो मेटाडेटा, कैशे, या अनुप्रयोग अवस्था के लिए उपयुक्त है।
- वितरित सीक्वेंसर: वैश्विक रूप से क्रमित पहचानकर्ता उत्पन्न करता है जो डेटाबेस, मैसेज कतारों, और इवेंट-ड्रिवन सिस्टम के लिए उपयोगी हैं।
आर्किटेक्चर:
Kahuna एक स्केलेबल स्टोरेज इंजन को Raft-आधारित कन्सेंसस के साथ जोड़ता है। डेटा को स्वतंत्र रूप से प्रबंधित विभाजनों में व्यवस्थित किया जाता है। यह छवि अलगदृश्यता (snapshot isolation) के लिए बहु-संस्करण सह-कार्यपालन नियंत्रण (MVCC) का उपयोग करता है, जिससे पढ़ने-लिखने के विरोध समाप्त हो जाते हैं। प्रत्येक विभाजन प्रतिलिपिकरण और नेता-आधारित लेखन समन्वय के लिए अपना Raft समूह चलाता है।
लेनदेन MVCC के साथ दो-चरणीय प्रतिबद्ध (2PC) का उपयोग करते हैं, जिसमें आशावादी और निराशावादी सह-कार्यपालन नियंत्रण मोड दोनों का समर्थन मिलता है। सिस्टम गतिशील विभाजन विभाजन और पुनर्वितरण के माध्यम से क्षैतिज रूप से स्केल होता है, और Raft प्रतिलिपिकरण एवं स्वचालित पुनर्प्राप्ति के माध्यम से उपलब्धता बनाए रखता है।
तकनीकी विवरण:
- .NET के साथ बनाया गया; विश्वव्यापी उपकर के रूप में उपलब्ध (`Kahuna.Server` और `Kahuna.Control`)।
- पोर्ट्स: 2070 (HTTP/gRPC), 2071 (HTTPS), 2072 (अस्पष्ट gRPC)।
- स्टोरेज पथ: Linux/macOS `~/.local/share/kahuna`, Windows `%LOCALAPPDATA%\kahuna`।
- नोड प्रमाणीकरण के लिए प्रमाणपत्र और पारस्परिक TLS के माध्यम से HTTPS का समर्थन।
- स्वचालित क्लस्टर प्रबंधन के लिए Kubernetes ऑपरेटर (alpha) उपलब्ध है।
- नेटवर्क विभाजन, क्रैश, और घड़ी विक्षेप के तहत सत्य के लिए Jepsen के साथ परीक्षण किया गया।
- वेब डैशबोर्ड शामिल है।
लाइसेंस: MIT।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.