CouchDB और Couchbase के बीच अंतर


270

क्या CouchDB और Couchbase के बीच कोई आवश्यक अंतर हैं ।


45
नामों के बारे में उलझन? तो मैं था, इसलिए मैंने नामकरण के इतिहास के एक दृश्य में इस शीर्ष उत्तर से नामकरण जानकारी को रीमिक्स करके शुरू किया , जो कि इनमें से किसी भी उत्तर को समझने में मदद करे।
जीरोने

@ जोरेन एक भयानक दृश्य है। क्या इसे उस शीर्ष उत्तर में संपादित किया जाना चाहिए?
shoover

@ होवरओवर Thx, ख़ुशी से इसने मदद की। यदि यह पर्याप्त रूप से सही है, तो मैं काफी न्याय नहीं कर सकता, लेकिन अगर rsp (उस उत्तर का मुख्य लेखक) / समुदाय इसे योग्य समझे तो इसे एसओ लाइसेंस के तहत शामिल करने के लिए स्वतंत्र महसूस करें।
जीरन

जवाबों:


555

मुझे लगता है कि CouchDB और Couchbase सर्वर के बीच कुछ आवश्यक अंतर हैं जिन्हें इंगित करने की आवश्यकता है।

मैं CouchDB से Couchbase सर्वर पर स्विच करने के फायदों के बारे में नहीं लिखूंगा क्योंकि उन सभी जगहों पर बहुत अधिक वर्णन किया गया है ( Couchbase द्वारा Couchbase बनाम डेमियन काट्ज़ या Couchbase द्वारा भविष्य का काउचबेस देखें)। इसके बजाय, मैं CouchDB की उन विशेषताओं की गणना करने की कोशिश करूँगा जो आपको Couchbase सर्वर में नहीं मिलेंगी

CouchDB और Couchbase से संबंधित सभी नाम वास्तव में भ्रामक हो सकते हैं, इसलिए मैंने सबसे महत्वपूर्ण लोगों के संक्षिप्त विवरण के साथ शुरू करने के लिए, इस उत्तर को अपडेट किया है।

नाम और भ्रम

CouchDB, CouchIO, CouchOne, Couchbase, Couchbase Server, Couchbase Mobile, Couchbase Lite, CouchApps, BigCouch, Touchbase, Membase, Memcached, MemcacheDB ... सभी अलग और अभी तक एक तरह से संबंधित हैं जो केवल नाम से ही स्पष्ट नहीं हैं।

सबसे पहले, CouchDB, डेमियन काट्ज़ द्वारा बनाया गया एक डेटाबेस था, जो एक पूर्व आईबीएम डेवलपर था। इसका अपाचे प्रोजेक्ट बनने के बाद इसका आधिकारिक नाम अपाचे काउचडीबी में बदल दिया गया।

CouchIO नाम की एक कंपनी को Apache CouchDB पर काम करने के लिए स्थापित किया गया था और बाद में इसका नाम बदलकर CouchOne कर दिया गया ("इसका नाम" से मेरा मतलब है कंपनी का नाम - डेटाबेस का नाम नहीं)।

CouchOne (पूर्व में CouchIO), Cbbase नामक एक नई कंपनी बनाने के लिए मेम्बेस (पूर्व में नॉर्थस्केल) के साथ विलय कर दिया गया था। मेम्बेस (कंपनी) ने मेम्बेस (उसी नाम का एक उत्पाद) विकसित किया। मेम्बेस को मेमकेड प्रोजेक्ट के कई नेताओं द्वारा बनाया गया था और इसने मेम्केडेड प्रोटोकॉल का उपयोग किया था। CouchOne और Membase के विलय के बाद, Couchbase ने Membase सॉफ्टवेयर का विकास जारी रखा और बाद में इसका नाम बदलकर Couchbase Server कर दिया।

आज मुझे लगता है कि ज्यादातर लोग मानते हैं कि काउचबेस सर्वर काउचडीबी का एक नया संस्करण है, लेकिन वास्तव में, यह मेम्बेस का एक नया संस्करण है। यह अभी भी मेमेकैच्ड प्रोटोकॉल का उपयोग करता है न कि काउचडबाय का RESTful API। इस बीच, CouchDB अभी भी CouchDB है, अपाचे परियोजना के रूप में सक्रिय रूप से बनाए रखा और बढ़ाया गया है।

अब प्रासंगिक अंतरों के लिए:

लाइसेंसिंग

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

CouchDB अपाचे सॉफ्टवेयर फाउंडेशन का एक ओपन-सोर्स / फ्री सॉफ्टवेयर (कोई तार जुड़ा हुआ) प्रोजेक्ट नहीं है और अपाचे लाइसेंस, संस्करण 2.0 (DFSG- संगत, FSF- अनुमोदित, OSI- अनुमोदित, GPL- संगत, गैर-कॉपीलेफ़्ट के तहत जारी किया गया है) , वाणिज्यिक के अनुकूल)।

दर्शन

मैंने इसे कभी भी सीधे तौर पर नहीं देखा है लेकिन यह वास्तव में उन दो डेटाबेस के बीच सबसे महत्वपूर्ण अंतर हो सकता है क्योंकि यह वितरित कंप्यूटिंग मॉडल के अंतर्निहित दर्शन के बारे में है और न केवल कुछ विशेषताओं, एपीआई या लाइसेंस के बारे में है। CouchDB और Couchbase सर्वर पूरी तरह से वितरित सिस्टम और डेटाबेस के निर्माण के अपने दर्शन में भिन्न होते हैं।

सीएपी प्रमेय के अनुसार एक वितरित डेटाबेस के लिए एक साथ स्थिरता, उपलब्धता और विभाजन सहिष्णुता प्रदान करना असंभव है।

CouchDB एक एपी प्रकार की प्रणाली है ( उपलब्धता और विभाजन सहिष्णुता प्रदान करता है )।

Couchbase Server एक CP प्रकार प्रणाली ( विकिपीडिया के अनुसार ) या एक CA प्रकार प्रणाली ( Couchbase तकनीकी अद्यतन के अनुसार ) है - जो कि इस सही है? कृपया टिप्पणी करें।

विशेषताएं

यह वह है जो मुझे CouchDB सुविधाओं की एक सूची के रूप में मिला जो Couchbase सर्वर द्वारा समर्थित नहीं हैं:

  • नो रीस्टफुल एपीआई (केवल विचारों के लिए, सीआरयूडी संचालन के लिए नहीं)
  • नहीं _changes फ़ीड
  • कोई सहकर्मी-सहकर्मी प्रतिकृति नहीं
  • कोई CouchApps नहीं
  • कोई Futon (एक अलग प्रशासन इंटरफ़ेस उपलब्ध है)
  • कोई दस्तावेज़ आईडी नहीं
  • डेटाबेस की कोई धारणा नहीं (केवल बाल्टी हैं)
  • CouchDB डेटाबेस और Couchbase सर्वर के बीच कोई प्रतिकृति नहीं
  • कोई स्पष्ट अटैचमेंट नहीं (आपको नई कुंजी / मान जोड़े के रूप में अतिरिक्त फ़ाइलों को संग्रहीत करना होगा)
  • कोई HTTP एपीआई सब कुछ के लिए (आप काउचबेस सर्वर SDK या पर प्रायोगिक क्लाइंट लाइब्रेरी से एक का उपयोग करने की आवश्यकता है काउचबेस का विकास करना तो साथ में कोई प्रयोग कर्ल और wget )
  • नो काउचबीडी एपीआई (इसके बजाय मेमकेच्ड एपीआई का उपयोग करता है )
  • आप ब्राउज़र से सब कुछ नहीं कर सकते (आपको सर्वर-साइड एप्लिकेशन लिखना होगा)
  • वेब ऐप्स के लिए कोई दो-स्तरीय आर्किटेक्चर संभव नहीं है (आपको ब्राउज़र और डेटाबेस के बीच बैठने के लिए सर्वर-साइड एप्लिकेशन लिखना होगा, जैसे रिलेशनल डेटाबेस के साथ)
  • कोई अंतिम संगति नहीं
  • पूरी तरह से खुला-स्रोत / मुफ्त सॉफ्टवेयर नहीं
  • CouchDB के लिए एक ड्रॉप-इन प्रतिस्थापन नहीं है (इसके बजाय Memcached के लिए एक ड्रॉप-इन प्रतिस्थापन की तरह लगता है)

CouchDB की वे विशेषताएं आपके लिए महत्वपूर्ण हो सकती हैं या नहीं भी हो सकती हैं, भले ही उनमें से कमी एक नुकसान है या नहीं यह सख्ती से व्यक्तिपरक है, लेकिन मुझे लगता है कि CouchDB से Couchbase सर्वर पर स्विच करने का निर्णय या उन मतभेदों के आधार पर नहीं होना चाहिए अपने वर्तमान CouchDB तैनाती में उन सुविधाओं पर निर्भरता।

उदाहरण के लिए यदि आप काउचबीडी में बदलाव देखने के बाद काउचडीबी में रुचि रखते हैं, तो मिकाइल रोजर्स या एन क्रिस एंडरसन द्वारा महान काउच एप ट्यूटोरियल में से एक में नोडकैंप टॉक फीड करें, तो आपको यह महसूस करना होगा कि यदि आप कोस्बेस सर्वर पर स्विच करना चाहते हैं तो आप सब कुछ के बारे में बात कर रहे थे के बारे में भूल करने के लिए होगा।

उसके कारण, मैं कहूंगा कि Couchbase Server, Memcached और Membase (CouchDB का विकास नहीं) के विकास की तरह दिखता है और जैसा कि आप वर्तमान में Memchached या Membase का उपयोग कर रहे हैं, तो यह एक महान उत्पाद की तरह दिखता है। यदि आप सबसे बुनियादी तरीके से CouchDB का उपयोग कर रहे हैं, तो आप समान चीज़ों के लिए Couchbase सर्वर का उपयोग करने पर विचार कर सकते हैं और यह बेहतर प्रदर्शन कर सकता है (यदि आपके पास लाइसेंस प्रतिबंधों का बुरा नहीं है)। लेकिन अगर आप वास्तव में CouchDB में अद्वितीय विशेषताओं में से किसी का उपयोग कर रहे हैं (जैसे परिवर्तन फ़ीड, CouchApps, दो स्तरीय वास्तुकला, सहकर्मी से सहकर्मी प्रतिकृति आदि) तो आप या तो उन सुविधाओं के बारे में भूल सकते हैं या CouchDB के बारे में रह सकते हैं। किसी भी स्थिति में, स्विचिंग के बारे में सोचने से पहले CouchDB उपयोगकर्ता ट्यूटोरियल के लिए काउचबेस के माइग्रेशन को पढ़ना और समझना सुनिश्चित करें ।

लोगों को अक्सर गलत धारणा मिलती है (हो सकता है कि "CouchDB का भविष्य क्या है? Couchbase।" ) जैसी चीजों को पढ़ने के बाद , CouchDB को Couchbase सर्वर द्वारा किसी तरह का पालन किया जाता है, या यह कि Couchbase का एक पुराना, विरासत संस्करण है। इस बीच CouchDB एक सक्रिय रूप से बनाए रखा ओपन-सोर्स प्रोजेक्ट है, Couchbase सर्वर एक पूरी तरह से अलग परियोजना है (यह एक नई परियोजना है लेकिन यह CouchDB का एक नया संस्करण नहीं है - वे भी संगत नहीं हैं) और CouchbApp बनाने के लिए नए उपकरण अभी भी बनाए रखें विकसित किया जा रहा है (उदाहरण के लिए कान्सो परियोजना देखें ) तब काउचबडी जल्द ही कहीं नहीं जा रही है।

मुझे आशा है कि यह भ्रम को स्पष्ट करता है। कृपया मुझे सही करें अगर मैं यहाँ कुछ भी गलत हूँ।

अपडेट करें:

काउचबेस सर्वर वास्तव में मेम्बेस सर्वर का एक नया नाम है (मेम्बेस सर्वर का नाम बदलकर Couchbase सर्वर को संस्करण 1.8 के आसपास कहीं रखा गया था)। 2011 में Couchbase की समीक्षा में देखें :

दुर्भाग्य से, हमने अपने कई संभावित उपयोगकर्ताओं से बाहर होने की बात कुबूल कर ली। मेम्बेस सर्वर और हमारे नए मोबाइल उत्पादों के अलावा, हमने काउचबेस सिंगल सर्वर की भी पेशकश की, जो अपाचे काउचडीबी का एक "वितरण" पैक था। उसके ऊपर हमने Couchbase Server 2.0 के डेवलपर पूर्वावलोकन जारी करना शुरू किया, जिसमें CouchDB तकनीक को मेम्बेस सर्वर में शामिल किया गया - लेकिन यह उत्पाद Couchbase Single Server (या CouchDB) के साथ संगत नहीं था। [...] मेम्बेस सर्वर का नाम बदलकर काउचबेस सर्वर 1.8 जनवरी में इसकी अगली रिलीज पर रखा जाएगा - एक छोटा कदम जो कि केवल "नाम" भ्रम को दूर करता है। जैसा कि शुरू से ही योजना बनाई गई है, काउचबेस सर्वर 2.0 रिलीज़ (वर्तमान में डेवलपर पूर्वावलोकन 3) सूचकांक और क्वेरी कार्यक्षमता को जोड़ देगा। जबकि Couchbase सर्वर 2.0 CouchDB परियोजना से पर्याप्त प्रौद्योगिकी को शामिल करेगा,यह CouchDB के साथ संगत नहीं होगा और इसे "CouchDB के संस्करण" के रूप में नहीं देखा जाना चाहिए। [महत्व दिया]

यह सभी देखें:


69
वाहवाही। वास्तव में चीजों के इस पक्ष को स्पष्ट करते हुए देखने के लिए खुशी है (मौजूदा तुलना के सभी, जैसा कि आपने सूचीबद्ध किया है, एक ध्यान देने योग्य काउचबेस पूर्वाग्रह है)।
स्टुअर्ट पी। बेंटले

6
@AlterTross: वास्तव में CouchDB API का उपयोग नहीं करना, Restful नहीं होना और HTTP का उपयोग न करना बिल्कुल एक जैसी चीजें नहीं हैं। उदाहरण के लिए, Riak CouchDB API का उपयोग नहीं करता है लेकिन यह अभी भी एक RESTful API का उपयोग करता है। इसके अलावा, यह REST का उपयोग नहीं कर सकता है लेकिन फिर भी HTTP (जैसे। SOAP या अन्य वेब सेवा) का उपयोग कर सकता है। यहाँ मैं यह स्पष्ट करना चाहता था कि Couchbase सर्वर न केवल CouchDB API का उपयोग नहीं करता है, लेकिन इसका API RESTful नहीं है और HTTP का भी उपयोग नहीं करता है।
आरपी

24
मैं इसे उत्तर मानता हूं। धन्यवाद।
भाषा

10
अपने "सीपी बनाम सीए" प्रश्न के बारे में: संक्षेप में, "सीए" प्रणाली का होना असंभव है जब तक कि आप एक मशीन के बारे में बात नहीं कर रहे हैं। नेटवर्क में हमेशा विभाजन होते हैं ( aphyr.com/posts/288-the-network-is-reliable ) और इसलिए एक वितरित प्रणाली, किसी भी समय दी जाएगी, या तो उपलब्ध होने के लिए ट्रेड-ऑफ करती है या चेहरे के अनुरूप होती है विभाजन (लेकिन दोनों कभी नहीं)। तो, प्रेरण द्वारा Couchbase CP है। वास्तव में यह vBuckets के पीछे उनकी प्रतिकृति रणनीति से है जो 1) n मास्टर / दास (s) या b) 1..n श्रृंखला-आधारित बनाम डायनामो (एपी) के बाद तैयार की गई प्रणाली के अनुसार है।
ग्रेग बर्ड

9
आज तक, इस लेख के लिए एक बहुत ही महत्वपूर्ण अतिरिक्त है: काउचबेस सिंकगेटवे। यह अनिवार्य रूप से एक हिस्सा है जो काउचबेस के लिए एक एपीआई संगत स्तर पर काउचबेड प्रतिकृति लाता है, जैसे कि काउचबेड को सिंकगेटवे के माध्यम से काउचबेस के साथ दोहराया जा सकता है। जो काउचबेस लाइट के परिप्रेक्ष्य से एक बहुत बड़ी बात है, जो (कुछ कोने के मामलों को छोड़कर) मूल रूप से CouchDB के साथ सिंक करने के लिए सिंक से स्विच कर सकती है
लियोनिद

39

वे सॉफ्टवेयर के समान अलग-अलग टुकड़े हैं। मैंने एक तस्वीर में शीर्ष उत्तर से उस सामग्री को हटा दिया है जो "अंतर" के साथ-साथ सामान्य चीजों को स्पष्ट करने में मदद कर सकती है:

ऊपर जुड़ा हुआ अन्य उत्तर इस छवि का एक विस्तारित विवरण है

मैट इनजेनट्रॉन की एक टिप्पणी इसमें शामिल है:

कुछ संदर्भ / सुधार जोड़ने के लिए: नॉर्थस्केल के संस्थापक स्टीव येन और डस्टिन सैलिंग हैं। मैंने स्थापना के कुछ समय बाद ही उन्हें ज्वाइन कर लिया। इसके अलावा, डेमियन बाद में काउचबेस में शामिल नहीं हुआ, वह विलय से पहले काउचियो / काउच वन का हिस्सा था। एक मजेदार, ऐतिहासिक स्रोत का हवाला देते हुए: https://youtube.com/watch?v=aZ_JOnU8tkI


4
यह एक सुपर उपयोगी जानकारी-ग्राफिक है!
Zach Smith

3
कुछ संदर्भ / सुधार जोड़ने के लिए: नॉर्थस्केल के संस्थापक स्टीव येन और डस्टिन सैलिंग हैं। मैंने स्थापना के कुछ समय बाद ही उन्हें ज्वाइन कर लिया। इसके अलावा, डेमियन बाद में काउचबेस में शामिल नहीं हुआ, वह विलय से पहले काउचियो / काउच वन का हिस्सा था। एक मजेदार, ऐतिहासिक स्रोत का हवाला देते हुए: youtube.com/watch?v=aZ_JOnU8tkI
मैट इनजेनट्रॉन

1
@MattIngenthron Thx अपडेट के लिए। मैंने जवाब में आपकी टिप्पणी खिसका दी है, अगर मुझे समय मिल जाए तो मैं फ्लोचार्ट को उसके अनुसार बदल सकता हूं।
जेरोइन

1

मुझे लगता है कि CouchBase को CouchDB के 'एंटरप्राइज' विकल्प के रूप में माना जाता है। जो एक तरह से सत्य प्रतीत होता है। CouchDB की तुलना में रिकॉर्ड्स (दस्तावेजों) और 'आउट-ऑफ-द-बॉक्स' REST के एंडपॉइंट्स में फाइल अटैच करने की क्षमता के अलावा, CouchBase में भाषा की तरह sql है (N1QL (कभी-कभी निकेल उच्चारण)। यह एक कारण है कि मुझे 'NoSQL' शब्द का उपयोग करना वास्तव में पसंद नहीं है। मुझे व्यक्तिगत रूप से 'गैर-संबंधपरक' शब्द पसंद है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.