पिछले हफ्ते Canonical ने Dqlite 1.0 परियोजना के एक प्रमुख संस्करण को जारी करने की घोषणा की, आप एक SQL इंजन विकसित कर रहे हैं बिल्ट-इन SQLite कंप्लेंट जो डेटा नोड्स, ऑटोमैटिक डिजास्टर रिकवरी और मल्टीपल नोड्स को फैलाकर फॉल्ट टॉलरेंस को सपोर्ट करता है।
Dqlite एक C लाइब्रेरी है यह उच्च उपलब्धता और स्वचालित विफलता के साथ एक प्रतिकृति और SQL डेटाबेस इंजन को लागू करता है। "वितरित SQLite" के लिए संक्षिप्त नाम "dqlite" है, जिसका अर्थ है कि dqlite एक नेटवर्क प्रोटोकॉल के साथ SQLite का विस्तार करता है जो आपके एप्लिकेशन के कई उदाहरणों को जोड़ सकता है और बाहरी डेटाबेस पर निर्भरता के बिना उन्हें अत्यधिक उपलब्ध क्लस्टर के रूप में कार्य कर सकता है।
उल्लेखानुसार डीबीएमएस एक सी लाइब्रेरी के रूप में लागू होता है जो अनुप्रयोगों से जुड़ा होता है और Apache 2.0 लाइसेंस के तहत वितरित किया जाता है (मूल SQLite सार्वजनिक डोमेन में प्रदान किया गया है)। लाइब्रेरी मौजूदा SQLite कोड के आधार पर एक प्लगइन है, जो विभिन्न मेजबानों पर चल रहे एप्लिकेशन के कई उदाहरणों को जोड़ने के लिए नेटवर्क प्रोटोकॉल समर्थन जोड़ता है।
Dqlite के साथ बनाया गया एक एप्लिकेशन एक विफलता क्लस्टर के रूप में कार्य कर सकता है स्वायत्त गलती से, बाहरी DBMS से स्वतंत्र।
प्रयोग में, Canonical LXD कंटेनर प्रबंधन प्रणाली में Dqlite का उपयोग करता है। पुस्तकालय के अनुप्रयोग क्षेत्रों में, एज कंप्यूटिंग सिस्टम में दोषपूर्ण सहिष्णु इंटरनेट ऑफ थिंग्स डिवाइस और प्रोसेसर के निर्माण का भी उल्लेख किया गया है।
डेटा प्रतिकृति में निरंतरता सुनिश्चित करने के लिए, रफ़ एल्गोरिथ्म पर आधारित एक सर्वसम्मति विधि का उपयोग किया जाता है, जो कि etcd, RethinkDB, CockroachDB और OpenDaylight जैसी परियोजनाओं में उपयोग किया जाता है। Dqlite अपने स्वयं के अतुल्यकालिक C-raft कार्यान्वयन का उपयोग करता है, जो C में लिखा गया है
कनेक्शन प्रसंस्करण को मल्टीप्लेक्स करने और कोरटाइन्स के लॉन्च को व्यवस्थित करने के लिए, तैयार किए गए पुस्तकालयों लिबाव और लीबको का उपयोग किया जाता है।
एक समान rqlite परियोजना की तुलना में, Dqlite पूर्ण लेनदेन सहायता प्रदान करता है, यह किसी भी सी परियोजना के साथ संवाद कर सकता है, आपको समय () फ़ंक्शन का उपयोग करने की अनुमति देता है, और SQL अभिव्यक्ति अनुवाद-आधारित प्रतिकृति के बजाय फ़्रेम-आधारित प्रतिकृति का उपयोग करता है।
Dqlite में हाइलाइट की जा सकने वाली विशेषताओं में से निम्नलिखित हैं:
- अतुल्यकालिक मोड में सभी डिस्क और नेटवर्क संचालन करें
- डेटा की सटीकता की पुष्टि करने के लिए परीक्षणों के एक सेट की उपस्थिति
- नेटवर्क पर कम मेमोरी खपत और कुशल डेटा विनिमय
- स्थायी डेटाबेस डिस्क भंडारण और लेनदेन लॉग (इन-मेमोरी कैशिंग क्षमता के साथ)
- विफलताओं के बाद त्वरित वसूली
- गो भाषा में स्थिर CLI क्लाइंट, जिसका उपयोग डेटाबेस को इनिशियलाइज़ करने, प्रतिकृति को कॉन्फ़िगर करने और कनेक्ट / डिस्कनेक्ट करने के लिए किया जा सकता है
- ARM, X86, POWER और IBM Z आर्किटेक्चर के लिए सपोर्ट
- रफ़ एल्गोरिथम का कार्यान्वयन लेन-देन की विलंबता को कम करने के लिए अनुकूलित है।
- अतुल्यकालिक एकल थ्रेड कार्यान्वयन एक घटना पाश के रूप में libuv का उपयोग कर।
- कस्टम तार प्रोटोकॉल SQLite आदिम और डेटा प्रकारों के लिए अनुकूलित।
- रफ़ एल्गोरिथ्म और सी-बेड़ा में इसके कुशल कार्यान्वयन के आधार पर डेटा प्रतिकृति।
Ubuntu और डेरिवेटिव पर Dqlite कैसे स्थापित करें?
कैन्यकल आपको डक्लाइट के साथ बातचीत के लिए एक ग्राहक कैसे बना सकता है, इस बारे में जानकारी प्रदान करता है, आप इस पर परामर्श कर सकते हैं निम्नलिखित लिंक में
अब सिस्टम पर लाइब्रेरी स्थापित करने के लिए, यह उबंटू उपयोगकर्ताओं के लिए दो तरह से स्थापित किया जा सकता है या इसका कोई अन्य व्युत्पन्न। Canonical एक PPA प्रदान करता है जहां से इसे काफी सरल तरीके से प्राप्त किया जा सकता है।
इस PPA को एक टर्मिनल से जोड़ा जा सकता है और इसमें निम्नलिखित कमांड निष्पादित किए जा सकते हैं:
sudo add-apt-repository ppa:dqlite/v1 sudo apt-get update sudo apt-get install libdqlite-dev
इस लाइब्रेरी को स्थापित करने की अन्य विधि संकलन द्वारा है इस प्रणाली पर तो यह उबंटू और अन्य लिनक्स वितरणों के लिए एक अधिक सामान्य विधि है।
ऐसा करने के लिए, उन्हें केवल एक टर्मिनल खोलना होगा और निम्नलिखित कमांड को निष्पादित करना होगा:
git clone --depth 100 https://github.com/canonical/sqlite.git cd sqlite ./configure --enable-replication make sudo make install cd .. git clone https://github.com/canonical/libco.git cd libco make sudo make install cd .. git clone https://github.com/canonical/raft.git cd raft autoreconf -i ./configure make sudo make install cd ..
एक बार सभी आवश्यक लाइब्रेरी स्थापित हो जाने के बाद, dqlite साझा लाइब्रेरी बनाने के लिए, आप चला सकते हैं:
autoreconf -i ./configure make sudo make install