गेल्या आठवड्यात Canonical ने Dqlite 1.0 प्रोजेक्टची एक मोठी आवृत्ती रिलीझ करण्याची घोषणा केली, आपण एक एस क्यू एल इंजिन विकसित करीत आहात डेटा प्रतिकृती, स्वयंचलित आपत्ती पुनर्प्राप्ती आणि एकाधिक नोडस् विस्तृत करून फॉल्ट टॉलरेंस समर्थन देणारी अंगभूत एस क्यू एल साइट अनुपालन.
डक्लाईट एक सी लायब्ररी आहे हे उच्च उपलब्धता आणि स्वयंचलित अयशस्वी ओव्हरसह एक प्रतिकृत आणि एसक्यूएल डेटाबेस इंजिन लागू करते. परिवर्णी शब्द "dqlite" म्हणजे "डिस्ट्रिब्युटेड SQLite", याचा अर्थ असा की डीकलाईट एसक्यूलाइटला नेटवर्क प्रोटोकॉलसह विस्तारित करते जे आपल्या अनुप्रयोगास एकाधिक उदाहरणे कनेक्ट करू शकते आणि बाह्य डेटाबेसवर अवलंबून न राहता अत्यंत उपलब्ध क्लस्टर म्हणून कार्य करण्यास प्रवृत्त करते.
नमूद केल्याप्रमाणे डीबीएमएस अनुप्रयोगांशी संलग्न सी लायब्ररीच्या स्वरूपात लागू केले गेले आहे आणि अपाचे २.० परवान्याअंतर्गत वितरीत केले आहे (मूळ एसक्यूलाईट सार्वजनिक डोमेनमध्ये प्रदान केले आहे). विद्यमान एसक्यूलाईट कोडच्या आधारे लायब्ररी एक प्लगइन आहे, जे विविध होस्टवर चालणार्या अनुप्रयोगाच्या एकाधिक घटनांमध्ये दुवा साधण्यासाठी नेटवर्क प्रोटोकॉल समर्थन जोडते.
डॅकलाईटसह तयार केलेला अनुप्रयोग फेलओव्हर क्लस्टर म्हणून कार्य करू शकतो स्वायत्त चुकून, बाह्य डीबीएमएस स्वतंत्र.
सरावात, एलएक्सडी कंटेनर मॅनेजमेंट सिस्टममध्ये कॅनोनिकल डिक्लिट वापरते. लायब्ररीच्या Amongप्लिकेशन क्षेत्रामध्ये एज एज्यूटिंग सिस्टममधील थिंग्ज डिव्हाइसेस आणि प्रोसेसरचे फॉल्ट-टॉलरंट इंटरनेट तयार करणे देखील नमूद केले आहे.
डेटा प्रतिकृतीमध्ये सुसंगतता सुनिश्चित करण्यासाठी, राफ्ट अल्गोरिदमवर आधारित एकमत पद्धत वापरली जाते, जी आदिड, रेथिंकडीबी, कॉकरोचडीबी, आणि ओपनडलाइट सारख्या प्रकल्पांमध्ये वापरली जाते. डीक्लाईट स्वतःचे एसिंक्रोनस सी-राफ्ट अंमलबजावणी वापरते, सी मध्ये लिहिलेले.
कनेक्शन प्रक्रिया मल्टिप्लेक्स करण्यासाठी आणि कॉरोटीन्स लॉन्च आयोजित करण्यासाठी, तयार लायब्ररी लिबुव्ह आणि लिबको वापरली जातात.
तत्सम rqlite प्रोजेक्टच्या तुलनेत, Dqlite पूर्ण लेनदेन समर्थन प्रदान करते, हे कोणत्याही सी प्रोजेक्टसह संप्रेषण करू शकते, आपल्याला वेळ () फंक्शन वापरण्याची परवानगी देते आणि एसक्यूएल एक्सप्रेशन भाषांतर-आधारित प्रतिकृतीऐवजी फ्रेम-आधारित प्रतिकृती वापरते.
डक्लाईटमध्ये ठळक केलेली वैशिष्ट्ये खालीलप्रमाणे आहेत:
- सर्व डिस्क आणि नेटवर्क ऑपरेशन्स एसिन्क्रोनस मोडमध्ये करा
- डेटाच्या अचूकतेची पुष्टी करण्यासाठी चाचण्यांच्या संचाची उपस्थिती
- नेटवर्कवर कमी मेमरी वापर आणि कार्यक्षम डेटा एक्सचेंज
- कायम डेटाबेस डिस्क संचयन आणि व्यवहार लॉग (इन-मेमरी कॅशिंग क्षमतेसह)
- अयशस्वी झाल्यानंतर द्रुत पुनर्प्राप्ती
- गो भाषेमधील स्थिर सीएलआय क्लायंट, जो डेटाबेस आरंभ करण्यासाठी, प्रतिकृती कॉन्फिगर केले आणि नोड्स कनेक्ट / डिस्कनेक्ट करण्यासाठी वापरले जाऊ शकतात
- एआरएम, एक्स 86, पॉवर, आणि आयबीएम झेड आर्किटेक्चर्सकरिता समर्थन
- लेफ्ट अल्गोरिदमची अंमलबजावणी व्यवहारातील विलंब कमी करण्यासाठी अनुकूलित केली गेली आहे.
- इव्हेंट लूप म्हणून लिबुव्ह वापरुन एसिन्क्रॉनस सिंगल थ्रेडेड अंमलबजावणी.
- एसक्यूलाईट आदिम आणि डेटा प्रकारांसाठी अनुकूलित सानुकूल वायर प्रोटोकॉल.
- राफ्ट अल्गोरिदम आणि सी-राफ्टमध्ये त्याच्या कार्यक्षम अंमलबजावणीवर आधारित डेटा प्रतिकृती.
उबंटू आणि डेरिव्हेटिव्ह्जवर डक्लाईट कसे स्थापित करावे?
अधिकृत डिक्लिटाशी संवाद साधण्यासाठी आपण क्लायंट कसा तयार करू शकता याबद्दल माहिती प्रदान करते, आपण सल्लामसलत करू शकता पुढील लिंकवर
आता सिस्टमवर लायब्ररी स्थापित करण्यासाठी, हे दोन मार्गांनी स्थापित केले जाऊ शकते जे उबंटू वापरकर्ते आहेत किंवा त्याचे इतर कोणतेही व्युत्पन्न. अधिकृत एक पीपीए प्रदान करते जिथून ते अगदी सोप्या मार्गाने मिळू शकते.
हे पीपीए टर्मिनलमधून जोडले जाऊ शकते आणि त्यामध्ये पुढील आज्ञा अंमलात आणता येईल:
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 ..
एकदा सर्व आवश्यक लायब्ररी स्थापित झाल्यानंतर, डिक्लिट सामायिक केलेली लायब्ररी तयार करण्यासाठी, आपण हे चालवू शकता:
autoreconf -i ./configure make sudo make install