अपाचे काउचडीबी

From Vigyanwiki
Revision as of 11:46, 4 July 2023 by alpha>Adityak
Apache CouchDB
Original author(s)Damien Katz, Jan Lehnardt, Naomi Slater, Christopher Lenz, J. Chris Anderson, Paul Davis, Adam Kocoloski, Jason Davies, Benoît Chesneau, Filipe Manana, Robert Newson
Developer(s)Apache Software Foundation
Initial release2005; 19 years ago (2005)
Stable release
Script error: The module returned a nil value. It is supposed to return an export table. / Script error: The module returned a nil value. It is supposed to return an export table.; Error: first parameter cannot be parsed as a date or time. (Script error: The module returned a nil value. It is supposed to return an export table.)
Written inErlang, JavaScript, C, C++
Operating systemCross-platform
TypeDocument-oriented database
LicenseApache License 2.0

अपाचे काउचडीबी ओपन-सोर्स डॉक्यूमेंट-उन्मुख नोएसक्यूएल डेटाबेस है, जिसे एर्लैंग में कार्यान्वित किया गया है।

काउचडीबी अपने डेटा को स्टोर करने, ट्रांसफर करने और प्रोसेस करने के लिए कई फॉर्मेट और प्रोटोकॉल का उपयोग करता है। यह डेटा संग्रहीत करने के लिए जेसन का उपयोग करता है, मैपरेड्युस का उपयोग करके अपनी क्वेरी भाषा के रूप में जावास्क्रिप्ट का उपयोग करता है, और एपीआई के लिए एचटीटीपी का उपयोग करता है।[1]

काउचडीबी पहली बार 2005 में जारी किया गया था और बाद में 2008 में अपाचे सॉफ्टवेयर फाउंडेशन प्रोजेक्ट बन गया था।

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

काउचडीबी मल्टी वर्जन कॉन्करेंसी कंट्रोल (एमवीसीसी) का एक रूप प्रयुक्त करता है, इसलिए यह लिखने के दौरान डेटाबेस फ़ाइल को लॉक नहीं करता है। विवादों को हल करने के लिए एप्लिकेशन पर छोड़ दिया जाता है। किसी विवाद को सुलझाने में सामान्यतः पहले डेटा को किसी डाक्यूमेंट में मर्ज करना और फिर पुराने डाक्यूमेंट को हटाना सम्मिलित होता है।[2]

अन्य सुविधाओं में अंतिम स्थिरता के साथ डाक्यूमेंट-स्तरीय एसीआईडी शब्दार्थ, (वार्धिक) मैपरेड्युस, और (वार्धिक) प्रतिकृति सम्मिलित हैं। काउचडीबी की विशिष्ट विशेषताओं में से मल्टी-मास्टर प्रतिकृति है, जो इसे उच्च-प्रदर्शन प्रणाली बनाने के लिए मशीनों में स्केल करने की अनुमति देती है। फ़ॉक्सटन (पूर्व में फ़्यूटन) नामक अंतर्निर्मित वेब एप्लिकेशन प्रबंधन में सहायता करता है।

इतिहास

काउच अविश्वसनीय कमोडिटी हार्डवेयर के क्लस्टर का संक्षिप्त रूप है।[3] काउचडीबी परियोजना अप्रैल 2005 में आईबीएम के पूर्व लोटस नोट्स डेवलपर डेमियन काट्ज़ द्वारा बनाई गई थी। उन्होंने लगभग दो वर्षों तक इस परियोजना को स्वयं वित्त पोषित किया और इसे जीएनयू जनरल पब्लिक लाइसेंस के तहत ओपन-सोर्स प्रोजेक्ट के रूप में जारी किया था।

फरवरी 2008 में, यह अपाचे इनक्यूबेटर प्रोजेक्ट बन गया और इसके बजाय अपाचे लाइसेंस के अंतर्गत प्रस्तुत किया गया।[4] कुछ महीनों के बाद, यह शीर्ष-स्तरीय परियोजना में सम्मिलित हो गया।[5] इसके परिणामस्वरूप जुलाई 2010 में पहला स्थिर संस्करण जारी किया गया था।[6]

2012 की प्रारम्भ में, काट्ज़ ने काउचबेस सर्वर पर ध्यान केंद्रित करने के लिए प्रोजेक्ट छोड़ दिया था।[7]

काट्ज़ के जाने के बाद से, अपाचे काउचडीबी परियोजना जारी रही, अप्रैल 2012 में 1.2 और अप्रैल 2013 में 1.3 जारी किया गया। जुलाई 2013 में, काउचडीबी समुदाय ने बिगकाउच, क्लाउडेंट के काउचडीबी के क्लस्टर्ड संस्करण, के लिए कोडबेस को अपाचे प्रोजेक्ट में मर्ज कर दिया गया।[8] बिगकाउच क्लस्टरिंग ढांचा अपाचे काउचडीबी की वर्तमान रिलीज में सम्मिलित है।[9]

संस्करण 2.0.0 पर नेटिव क्लस्टरिंग समर्थित है। और नया मैंगो क्वेरी सर्वर जावास्क्रिप्ट या मैपरेड्युस के बिना काउचडीबी क्वेरी करने के लिए सरल जेसन-आधारित विधि प्रदान करता है।

मुख्य विशेषताएं

एसिड सिमेंटिक्स
काउचडीबी एसिड सिमेंटिक्स प्रदान करता है।[10] यह मल्टी-वर्जन कॉन्करेंसी कंट्रोल के फॉर्म को कार्यान्वित करके ऐसा करता है, जिसका अर्थ है कि काउचडीबी बिना किसी विरोध के समवर्ती पाठकों और लेखकों की एक बड़ी मात्रा को संभाल सकता है।
ऑफ़लाइन के लिए निर्मित
काउचडीबी उन उपकरणों (जैसे स्मार्टफोन) की नकल कर सकता है जो ऑफ़लाइन हो सकते हैं और डिवाइस के वापस ऑनलाइन होने पर आपके लिए डेटा सिंक को संभाल सकते हैं।
प्रतिकृति के साथ वितरित आर्किटेक्चर
काउचडीबी को द्वि-दिशात्मक प्रतिकृति (या सिंक्रनाइज़ेशन) और ऑफ-लाइन ऑपरेशन को ध्यान में रखकर डिजाइन किया गया था। इसका मतलब है कि कई प्रतिकृतियां एक ही डेटा की अपनी प्रतियां रख सकती हैं, इसे संशोधित कर सकती हैं और फिर बाद में उन परिवर्तनों को सिंक कर सकती हैं।
डॉक्यूमेंट स्टोरेज
काउचडीबी डेटा को "डाक्यूमेंट्स" के रूप में संग्रहीत करता है, जेसन के रूप में एक या अधिक फ़ील्ड/वैल्यू जोड़े के रूप में अभिव्यक्त करते हैं। फ़ील्ड वैल्यू स्ट्रिंग, संख्याएं या दिनांक जैसी साधारण चीजें हो सकती हैं; लेकिन आदेशित सूचियाँ और सहयोगी सरणियाँ भी उपयोग की जा सकती हैं। काउचडीबी डेटाबेस में प्रत्येक दस्तावेज़ की एक विशिष्ट आईडी होती है और कोई आवश्यक डॉक्यूमेंट स्कीमा नहीं होती है।
अंततः संगति
काउचडीबी उपलब्धता और विभाजन सहनशीलता दोनों प्रदान करने में सक्षम होने के लिए अंतिम स्थिरता की प्रत्याभूति देता है।
मैप/रेड्यूस व्यूस एंड इन्डेक्सेस
संग्रहीत डेटा को व्यूस का उपयोग करके संरचित किया जाता है। काउचडीबी में, प्रत्येक व्यू का निर्माण जावास्क्रिप्ट फ़ंक्शन द्वारा किया जाता है जो मैप के आधे भाग (उच्च-क्रम फ़ंक्शन)/रिड्यूस ऑपरेशन के रूप में कार्य करता है। फ़ंक्शन एक डॉक्यूमेंट लेता है और उसे वापस लौटाए जाने वाले एकल मान में बदल देता है। काउचडीबी व्यूस को अनुक्रमित कर सकता है और उन इन्डेक्सेस को डाक्यूमेंट्स के जोड़े जाने, हटाए जाने या अद्यतन किए जाने पर अद्यतन रख सकता है।
एचटीटीपी एपीआई
सभी आइटम में अद्वितीय यूआरआई होता है जो एचटीटीपी के माध्यम से प्रदर्शित होता है। यह सभी संसाधनों पर चार बुनियादी सीआरयूडी (बनाएं, पढ़ें, अपडेट करें, हटाएं) संचालन के लिए एचटीटीपी विधियों पोस्ट, गेट, पुट और डिलीट का उपयोग करता है।

काउचडीबी फ़ॉक्सटन नामक वेब के माध्यम से सुलभ अंतर्निहित प्रशासन इंटरफ़ेस भी प्रदान करता है।[11]

उपयोग के स्थितियों और उत्पादन परिनियोजन

काउचडीबी की प्रतिकृति और सिंक्रनाइज़ेशन क्षमताएं इसे मोबाइल उपकरणों में उपयोग करने के लिए आदर्श बनाती हैं, जहां नेटवर्क कनेक्शन की गारंटी नहीं है, और एप्लिकेशन को ऑफ़लाइन काम करते रहना होगा।

काउचडीबी उन अनुप्रयोगों के लिए उपयुक्त है, जिनमें डेटा जमा होता है, कभी-कभी बदलता रहता है, जिस पर पूर्व-परिभाषित क्वेरीज़ चलायी जानी हैं और जहां संस्करण बनाना महत्वपूर्ण है (उदाहरण के लिए सीआरएम, सीएमएस सिस्टम)। मास्टर-मास्टर प्रतिकृति एक विशेष रूप से दिलचस्प सुविधा है, जो आसान मल्टी-साइट परिनियोजन की अनुमति देती है।[12]

उपयोगकर्ता

काउचडीबी के उपयोगकर्ताओं में सम्मिलित हैं:

  • सीईआरएन लार्ज हैड्रान कोलाइडर में डेटा प्रबंधन प्रणाली के लिए डेटाबेस के रूप में काउचडीबी का उपयोग करता है।[13]
  • रेड क्रॉस आपदा क्षेत्रों में इलेक्ट्रॉनिक रूप से केसवर्क पूरा करने के लिए आईडीएटी एप्लिकेशन का उपयोग करता है। यहां काउचडीबी का उपयोग मल्टी-नोड पीयर-टू-पीयर ऑफ़लाइन-प्रथम डेटाबेस के रूप में किया जाता है।[14]
  • आईबीएम क्लाउड सेवाएं बुनियादी स्तर पर काउचडीबी पर आधारित हैं।[15]
  • यूनाइटेड एयरलाइन्स 3,000 से अधिक विमानों में उड़ान के दौरान मनोरंजन प्रणालियों के लिए काउचडीबी का उपयोग करती है।[16][17]
  • एमॅड्यूस आईटी समूह, उनके कुछ बैक-एंड सिस्टम के लिए।
  • स्विस क्रेडिट , कमोडिटी विभाग में उनके बाज़ार ढांचे के लिए आंतरिक उपयोग के लिए है।[18]
  • मीबो, उनके सोशल प्लेटफॉर्म (वेब ​​और एप्लिकेशन) के लिए। गूगल द्वारा मीबो का अधिग्रहण कर लिया गया और अधिकांश उत्पाद 12 जुलाई 2012 को बंद कर दिए गए है।[19]
  • एनपीएम (सॉफ्टवेयर) अपने पैकेज रजिस्ट्री के लिए प्रतिकृति डेटाबेस के रूप में काउचडीबी का उपयोग करता है।[20]
  • सोफोस, उनके कुछ बैक-एंड सिस्टम के लिए है।।
  • बीबीसी, गतिशील सीएमएस-प्लेटफ़ॉर्म के लिए है।[21]
  • कैनोनिकल (कंपनी) ने 2009 में अपनी सिंक्रोनाइज़ेशन सेवा उबंटू वन के लिए इसका उपयोग प्रारम्भ किया,[22] लेकिन नवंबर 2011 में इसका उपयोग बंद कर दिया।[23]
  • कैनाल+ ओवरसीज़ में अंतर्राष्ट्रीय ऑन-डिमांड प्लेटफ़ॉर्म के लिए है।
  • प्रोटोग्रिड, उनके तीव्र अनुप्रयोग विकास प्रारूप के लिए स्टोरेज बैक-एंड के रूप में है।[24]

डेटा मेनिपुलेशन: डॉक्यूमेंट और व्यूस

काउचडीबी जेसन डाक्यूमेंट्स के संग्रह का प्रबंधन करता है। दस्तावेज़ों को विचारों के माध्यम से व्यवस्थित किया जाता है। व्यूस को समग्र फ़ंक्शंस के साथ परिभाषित किया गया है और फ़िल्टर की गणना समानांतर में की जाती है, बिल्कुल MapReduce की तरह है।

व्यू सामान्यतः डेटाबेस में संग्रहीत होते हैं और उनकी अनुक्रमणिकाएँ लगातार अद्यतन होती रहती हैं। काउचडीबी बाहरी सॉकेट सर्वर और जेसन-आधारित प्रोटोकॉल का उपयोग करके एक व्यू सिस्टम का समर्थन करता है।[25] परिणामस्वरूप, व्यू सर्वर विभिन्न भाषाओं में विकसित किए गए हैं (जावास्क्रिप्ट डिफ़ॉल्ट है, लेकिन पीएचपी, रूबी, पायथन और एर्लैंग भी हैं)।

एचटीटीपी के माध्यम से डेटा एक्सेस करना

एप्लिकेशन एचटीटीपी के माध्यम से काउचडीबी के साथ इंटरैक्ट करते हैं। निम्नलिखित कमांड-लाइन उपयोगिता cURL का उपयोग करके कुछ उदाहरण प्रदर्शित करता है। ये उदाहरण मानते हैं कि काउचडीबी पोर्ट 5984 पर लोकल होस्ट (127.0.0.1) पर चल रहा है।

कार्य रिक्वेस्ट रिस्पांस
सर्वर जानकारी तक पहुंच
curl http://127.0.0.1:5984/
{
  "couchdb": "Welcome",
  "version":"1.1.0"
}
विकि नाम का डेटाबेस बनाना
curl -X PUT http://127.0.0.1:5984/wiki
{"ok": true}
विकि नाम से दूसरा डेटाबेस बनाने का प्रयास किया जा रहा है
curl -X PUT http://127.0.0.1:5984/wiki
{
  "error":"file_exists",
  "reason":"The database could not be created, the file already exists."
}
विकी डेटाबेस के बारे में जानकारी प्राप्त करें
curl http://127.0.0.1:5984/wiki
{
  "db_name": "wiki",
  "doc_count": 0,
  "doc_del_count": 0,
  "update_seq": 0,
  "purge_seq": 0,
  "compact_running": false,
  "disk_size": 79,
  "instance_start_time": "1272453873691070",
  "disk_format_version": 5
}
डेटाबेस विकी को हटाएँ
curl -X DELETE http://127.0.0.1:5984/wiki
{"ok": true}
एक डॉक्यूमेंट बनाएँ, काउचडीबी से डॉक्यूमेंटआईडी प्रदान करने के लिए कहें
curl -X POST -H "Content-Type: application/json" --data \
'{ "text" : "Wikipedia on couchdb", "rating": 5 }' \
http://127.0.0.1:5984/wiki
{
  "ok": true,
  "id": "123BAC",
  "rev": "946B7D1C"
}
डेटाबेस की सूची प्राप्त करें
curl http://127.0.0.1:5984/_all_dbs
["_replicator","_users","wiki"]

ओपन सोर्स घटक

काउचडीबी में इसके डिफ़ॉल्ट पैकेज के हिस्से के रूप में कई अन्य ओपन सोर्स प्रोजेक्ट सम्मिलित हैं।

अवयव विवरण लाइसेंस
एरलांग एर्लैंग एक सामान्य प्रयोजन वाली समवर्ती प्रोग्रामिंग भाषा और रनटाइम प्रणाली है। एर्लैंग का अनुक्रमिक उपसमुच्चय सख्त मूल्यांकन , एकल असाइनमेंट और गतिशील टाइपिंग के साथ एक कार्यात्मक भाषा है। अपाचे 2.0 (रिलीज़ 18.0 और बाद में)

एर्लांग पब्लिक लाइसेंस (पहले रिलीज़)

आईसीयू यूनिकोड के लिए अंतर्राष्ट्रीय घटक (आईसीयू) यूनिकोड समर्थन, सॉफ्टवेयर अंतर्राष्ट्रीयकरण और सॉफ्टवेयर वैश्वीकरण के लिए परिपक्व C / C++ और जावा लाइब्रेरी का एक ओपन-सोर्स प्रोजेक्ट है। यूनिकोड लाइसेंस
जेक्वेरी जेक्वेरी साधारण क्रॉस-ब्राउज़र जावास्क्रिप्ट लाइब्रेरी है जो जावास्क्रिप्ट और एचटीएमएल के बीच इंटरैक्शन पर जोर देती है। एमआईटी लाइसेंस
ओपनएसएसएल ओपनएसएसएल एसएसएल और टीएलएस प्रोटोकॉल का ओपन-सोर्स कार्यान्वयन है। कोर लाइब्रेरी ( C प्रोग्रामिंग भाषा में लिखी गई ) बुनियादी क्रिप्टोग्राफ़िक फ़ंक्शंस को कार्यान्वित करती है और विभिन्न उपयोगिता फ़ंक्शंस प्रदान करती है। अपाचे 1.0 और चार खंड वाला बीएसडी लाइसेंस
स्पाइडरमंकी स्पाइडरमंकी मोज़िला फाउंडेशन द्वारा संचालित परफॉर्मेंट जावास्क्रिप्ट इंजन है । इसमें दुभाषिया , जेआईटी कंपाइलर और गार्बेज संग्रहकर्ता सम्मिलित है। एमपीएल 2.0

यह भी देखें

संदर्भ

  1. Apache Software Foundation. "अपाचे काउचडीबी". Retrieved 15 April 2012.
  2. Smith, Jason. "What is the CouchDB replication protocol? Is it like Git?". StackOverflow. Stack Exchange. Retrieved 14 April 2012.
  3. "काउचडीबी की खोज". Developer Works. IBM. March 31, 2009. Retrieved September 30, 2016.
  4. Apache mailing list announcement on mail-archives.apache.org
  5. Re: Proposed Resolution: Establish CouchDB TLP on mail-archives.apache.org
  6. "CouchDB NoSQL Database Ready for Production Use", article from PC World of July 2010
  7. Katz, Damien. "CouchDB का भविष्य". Retrieved 15 April 2012.
  8. Slater, Noah. "बिगकाउच में आपका स्वागत है". Retrieved 25 July 2013.
  9. "'2.0'". 20 September 2016. Retrieved 13 January 2017.
  10. CouchDB, Technical Overview Archived October 20, 2011, at the Wayback Machine
  11. "काउचडीबी-फॉक्सटन". GitHub. apache. Retrieved 2 May 2023.
  12. Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase comparison from Kristóf Kovács
  13. "लार्ज हैड्रॉन कोलाइडर वैज्ञानिक CouchDB का उपयोग क्यों कर रहे हैं?". ReadWrite (in English). 2010-08-26. Retrieved 2022-03-29.
  14. iDAT, Red Cross Code, 2021-07-31, retrieved 2022-03-29
  15. "डेटाबेस-डीप-डाइव्स-काउचडीबी". www.ibm.com (in English). Retrieved 2022-03-29.
  16. "डेटाबेस-डीप-डाइव्स-काउचडीबी". www.ibm.com (in English). Retrieved 2022-03-29.
  17. "United Airlines Streamlines Operations With Couchbase | Case Study". www.couchbase.com. Retrieved 2022-03-29.
  18. "CouchDB in the wild" Archived 2017-07-20 at the Wayback Machine article of the product's Web, a list of software projects and websites using CouchDB
  19. Cutler, Kim-Mai (9 June 2012). "Meebo Gets The Classic Google Acq-hire Treatment: Most Products To Shut Down Soon". TechCrunch. AOL Inc. Retrieved 7 January 2016.
  20. "एनपीएम-रजिस्ट्री-काउचएप". GitHub. npm. 17 June 2015. Retrieved 7 January 2016.
  21. CouchDB at the BBC as a fault tolerant, scalable, multi-data center key-value store
  22. Email from Elliot Murphy (Canonical) Archived 2011-05-05 at the Wayback Machine to the CouchDB-Devel list
  23. Canonical Drops CouchDB From Ubuntu One (Slashdot)
  24. "Protogrid - Über uns".
  25. View Server Documentation Archived 2008-10-20 at the Wayback Machine on wiki.apache.org


ग्रन्थसूची


बाहरी संबंध