क्या कोई NoSQL डेटा स्टोर है जो ACID कंप्लेंट है?


156

क्या कोई NoSQL डेटा स्टोर है जो ACID कंप्लेंट है?


2
वास्तव में FoundationDB था जो एसिड अनुपालन था। अब Apple ने इसे हथिया लिया
The यूजर जिसके पास कोई टोपी नहीं है

जवाबों:


110

मैं इसे विशुद्ध रूप से बातचीत का समर्थन करने के लिए उत्तर के रूप में पोस्ट करूंगा - टिम माही , नर्वोथ और क्रेगटीपी ने व्यवहार्य डेटाबेस का सुझाव दिया है। Erlang के उपयोग के कारण CouchDB मेरा पसंदीदा होगा , लेकिन वहाँ वहाँ बाहर दूसरों रहे हैं।

मैं कहूंगा कि ACID NoSQL की अवधारणा का विरोधाभासी या नकारात्मक नहीं करता है ... जबकि वहाँ एक प्रवृत्ति है जो कि कबूतर द्वारा व्यक्त की गई राय का अनुसरण करती है , मेरा मानना है कि अवधारणाएँ अलग हैं।

NoSQL मूल रूप से सरल कुंजी-मूल्य (उदाहरण के लिए रेडिस) या दस्तावेज़-शैली स्कीमा ("दस्तावेज़" मॉडल में कुंजी-मूल्य वाले जोड़े, जैसे MongoDB) को शास्त्रीय RDBMS में स्पष्ट स्कीमा के प्रत्यक्ष विकल्प के रूप में लिया जाता है। यह डेवलपर को विषम रूप से चीजों का इलाज करने की अनुमति देता है , जबकि पारंपरिक इंजन ने डेटा मॉडल में कठोर समान-नेस लागू किया है । यह बहुत दिलचस्प है क्योंकि यह परिवर्तन से निपटने का एक अलग तरीका प्रदान करता है , और बड़े डेटा सेट के लिए यह वॉल्यूम और प्रदर्शन से निपटने के लिए दिलचस्प अवसर प्रदान करता है।

ACID यह सिद्धान्त प्रदान करता है कि डेटाबेस में परिवर्तन कैसे लागू होते हैं। बहुत ही सरल तरीके से, यह कहा गया है (मेरा अपना संस्करण):

  • (ए) जब आप एक डेटाबेस को बदलने के लिए कुछ करते हैं तो परिवर्तन को काम करना चाहिए या एक पूरे के रूप में विफल होना चाहिए
  • (सी) डेटाबेस सुसंगत रहना चाहिए (यह एक बहुत व्यापक विषय है)
  • (I) यदि अन्य चीजें एक ही समय में चल रही हैं, तो उन्हें चीजों को मध्य अद्यतन करने में सक्षम नहीं होना चाहिए
  • (डी) यदि सिस्टम ऊपर उठता है (हार्डवेयर या सॉफ्टवेयर) तो डेटाबेस को खुद को वापस लेने में सक्षम होने की आवश्यकता होती है; और अगर यह कहता है कि यह एक अद्यतन को लागू करने में समाप्त हो गया है, तो इसे निश्चित होना चाहिए

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

आगे पढ़ने के लिए कुछ संसाधन:


15
अच्छा उत्तर। आपके पास NoSQL + ACID और गैर-ACID-RDBMS (सोचिए MySQL + MyISAM) दोनों हो सकते हैं। मैं आमतौर पर NoSQL को "अंततः सुसंगत" मानता हूं । मैं कैप प्रमेय में भी फेंक दूँगा ... :-)
gbn

कैप प्रमेय के उल्लेख के लिए +1 @ बीजीएन। "Nosql" db की तुलना में अधिक परिचित होने के बाद मैंने तब केवल अवधारणाओं के पृथक्करण को सुदृढ़ किया था। इसके अलावा, कुंजी-मूल्य बनाम डॉक्टर डेटाबेस, क्योंकि वास्तु अंतर हैं।
ए जे।

-1 कैप प्रमेय के उल्लेख के लिए, हमें इसे जलाना चाहिए। कृपया https://martin.kleppmann.com/2015/05/11/please-stop-calling-dat
डेटाबेस-cp

36

अद्यतन (27 जुलाई 2012): विकिपीडिया लेख के लिंक को उस लेख के संस्करण को प्रतिबिंबित करने के लिए अद्यतन किया गया है जो इस उत्तर के पोस्ट होने पर वर्तमान था। कृपया ध्यान दें कि वर्तमान विकिपीडिया लेख को बड़े पैमाने पर संशोधित किया गया है!

NoSQL पर एक विकिपीडिया लेख के पुराने संस्करण के अनुसार, ठीक है :

NoSQL गैर-संबंधपरक डेटा स्टोर के शिथिल परिभाषित वर्ग को बढ़ावा देने वाला एक आंदोलन है जो रिलेशनल डेटाबेस और ACAC गारंटी के लंबे इतिहास के साथ टूटता है।

और भी:

यह नाम गैर-संबंधपरक, वितरित डेटा स्टोरों की बढ़ती संख्या के उद्भव का वर्णन करने का एक प्रयास था जो अक्सर एसीटी गारंटी प्रदान करने का प्रयास नहीं करता था।

तथा

NoSQL सिस्टम अक्सर कमजोर संगतता गारंटी प्रदान करते हैं जैसे कि अंतिम स्थिरता और एकल डेटा आइटम तक सीमित लेनदेन, भले ही एक पूरक मिडलवेयर परत जोड़कर पूर्ण ACID गारंटी प्रदान कर सकते हैं।

इसलिए, संक्षेप में, मैं कहूंगा कि "NoSQL" डेटा स्टोर के मुख्य लाभों में से एक ACID गुणों की अपनी अलग कमी है । इसके अलावा, IMHO, जितना अधिक ACID गुणों को लागू करने और लागू करने की कोशिश करता है, उतना ही आगे आपको "NoSQL" डेटा स्टोर की "आत्मा" से दूर होता है, और एक "सही" RDBMS के करीब आपको मिलता है (अपेक्षाकृत बोलने वाला), के करीब )।

हालाँकि, सभी ने कहा, "NoSQL" एक बहुत अस्पष्ट शब्द है और व्यक्तिगत व्याख्याओं के लिए खुला है, और यह इस बात पर बहुत निर्भर करता है कि आपके पास कितना शुद्ध दृष्टिकोण है। उदाहरण के लिए, सबसे आधुनिक दिन RDBMS प्रणाली वास्तव में का पालन नहीं करते सब के एडगर एफ कॉड के 12 नियमों उसकी की संबंध मॉडल !

व्यावहारिक दृष्टिकोण लेते हुए, ऐसा प्रतीत होता है कि अपाचे का काउचडीबी एसीआईडी-अनुपालन दोनों को मूर्त रूप देने के सबसे करीब है, जबकि शिथिल-युग्मित, गैर-संबंधपरक "नोएसक्यूएल" मानसिकता को बनाए रखते हुए।


1
+1 मुझे यकीन नहीं है कि मैं ACID की कमी के साथ "NoSQL" की प्रमुख विशेषता से सहमत हूं, लेकिन मैं वास्तव में आपके राइटअप की सराहना करता हूं। अंततः, यह एक समाधान के बारे में होना चाहिए जो फिट बैठता है।
ए जे।

2
मैंने संपादित (लंबित समीक्षा) को और भी स्पष्ट करने की कोशिश की। NoSQL datamodels के बारे में कुछ भी नहीं है कि ACID लेनदेन संभव नहीं हैं। कुछ NoSQL वितरित सिस्टम उनके पास नहीं है। कुछ वास्तव में किसी भी "मिडिलवेयर परत" के बिना करते हैं।
एरिक बलोच

2
यह कभी सही नहीं था और यह स्रोत खो दिया है। इसे वास्तव में हटा दिया जाना चाहिए।
लेन्नर्ट रीजब्रो

2
खैर, सबसे स्पष्ट रूप से, यह: "संक्षेप में, मैं कहूंगा कि" NoSQL "डेटा स्टोर के मुख्य लाभों में से एक ACID गुणों की अपनी अलग कमी है।" आप यह भी कहते हैं कि NoSQL और ACID किसी तरह परस्पर अनन्य हैं जो निश्चित रूप से गलत है। यह एक अच्छा उदाहरण है जब बड़ी संख्या में अज्ञानी लोगों ने गलत उत्तर दिया क्योंकि यह उचित लगता है। यह है कि ज्यादातर NoSQL डेटाबेस ACID के अनुरूप नहीं हैं, क्योंकि ज्यादातर लोगों ने इसे लागू नहीं किया, यह पता नहीं था कि यह क्या था / क्यों यह महत्वपूर्ण था / परवाह नहीं थी।
लेन्नर्ट रेग्रोब

@ LennartRegebro - मैंने ऐसी किसी भी चीज़ का अर्थ नहीं लगाया। ACID- अनुपालन वास्तव में गति, प्रदर्शन और अंतिम स्थिरता के पक्ष में वर्तमान, मौजूदा NoSQL डेटाबेस द्वारा सबसे अधिक बचा लिया गया है। मैंने कभी नहीं कहा कि आपके पास ACID- अनुपालन के साथ NoSQL नहीं हो सकता है।
क्रेगटीपी

20

कृपया सुनिश्चित करें कि आपने NoSQL डेटाबेस के बारे में मार्टिन फाउलर परिचय पढ़ा । और संबंधित वीडियो।

सबसे पहले, हम दो प्रकार के NoSQL डेटाबेस को अलग कर सकते हैं:

  1. सकल-उन्मुख डेटाबेस;
  2. ग्राफ़-उन्मुख डेटाबेस (उदाहरण के लिए Neo4J)।

डिजाइन के अनुसार, अधिकांश ग्राफ-उन्मुख डेटाबेस ACID हैं !

फिर, अन्य प्रकारों के बारे में क्या?

सकल-उन्मुख डेटाबेस में, हम तीन उप-प्रकार रख सकते हैं:

  • दस्तावेज़-आधारित NoSQL डेटाबेस (जैसे MongoDB, CouchDB);
  • की / वैल्यू NoSQL डेटाबेस (जैसे रेडिस);
  • कॉलम परिवार NoSQL डेटाबेस (जैसे Hibase, Cassandra)।

जिसे हम यहां एक एग्रीगेट कहते हैं, वह यह है कि एरिक इवांस ने अपने डोमेन-ड्रिवेन डिज़ाइन में किसी दिए गए बाउंडेड कॉन्टेक्ट में एंटिटीज़ और वैल्यू-ऑब्जेक्ट्स की आत्मनिर्भरता के रूप में परिभाषित किया है ।

एक परिणाम के रूप में, एक कुल डेटा का एक संग्रह है जिसे हम एक इकाई के रूप में बातचीत करते हैं। एग्रीगेट डेटाबेस के साथ ACID संचालन के लिए सीमा बनाते हैं। (मार्टिन फाउलर)

इसलिए, एग्रीगेट स्तर पर, हम कह सकते हैं कि अधिकांश NoSQL डेटाबेस ACID RDBMS की तरह ही सुरक्षित हो सकते हैं , उचित सेटिंग्स के साथ। बेशक, यदि आप अपने सर्वर को सबसे अच्छी गति के लिए ट्यून करते हैं, तो आप कुछ गैर एसीआईडी ​​में आ सकते हैं। लेकिन प्रतिकृति मदद करेगी।

मेरा मुख्य बिंदु यह है कि आपको NoSQL डेटाबेस का उपयोग करना होगा क्योंकि वे RDBMS के विकल्प (सस्ते) के रूप में नहीं हैं। मैंने दस्तावेजों के बीच संबंधों का दुरुपयोग करते हुए बहुत अधिक परियोजनाएं देखी हैं। यह ACID नहीं हो सकता। अगर आप डॉक्यूमेंट लेवल पर रहते हैं, यानी एग्रीगेट बाउंड्रीज में, तो आपको किसी ट्रांजैक्शन की जरूरत नहीं है। और आपका डेटा ACID डेटाबेस के साथ भी उतना ही सुरक्षित होगा, भले ही वह सही मायने में ACID ही क्यों न हो, क्योंकि आपको उन लेनदेन की आवश्यकता नहीं है! यदि आपको लेनदेन की आवश्यकता है और एक साथ कई "दस्तावेज़" अपडेट करने हैं, तो आप NoSQL दुनिया में नहीं हैं - इसलिए इसके बजाय RDBMS इंजन का उपयोग करें!

कुछ २०१ ९ अपडेट: संस्करण ४.० में शुरू, उन स्थितियों के लिए, जिन्हें कई दस्तावेज़ों के अद्यतन के लिए परमाणुता की आवश्यकता होती है या कई दस्तावेज़ों के बीच स्थिरता होती है, MongoDB प्रतिकृति सेटों के लिए बहु-दस्तावेज़ लेनदेन प्रदान करता है



ऐसे मामले हैं जब एक बड़ी प्रक्रिया / गाथा है जो कई समुच्चय को संभालती है। ऐसे मामले होते हैं जब किसी कमांड को किसी कुल को भेजा जाता है जो कुछ घटनाओं को ट्रिगर कर सकता है जो अन्य समुच्चय को बदलते हैं। इन मामलों में आपको एसीआईडी ​​कंप्लेंट डेटा स्टोर की आवश्यकता होती है।
ट्यूडर

1
@ TudorTudor लेकिन इस मामले में आप एक nosql सिद्धांत को तोड़ रहे हैं, क्योंकि आप इसे rdbms के रूप में उपयोग कर रहे हैं। आपको बस दस्तावेजों के बड़े समुच्चय या संस्करण की आवश्यकता होती है (जैसे काउचडब में)। नोस्कल दस्तावेज़-उन्मुख डीबी दस्तावेज़ / कुल सीमाओं पर एसिड हैं।
अरनौद बुचेज़

आपकी सूची में से कोई भी एसिड अनुपालन नहीं है। Mongo सिर्फ ACID के अनुरूप नहीं है। CouchDB का दावा है कि जब तक आप दो दस्तावेजों को अपडेट नहीं कर रहे हैं तब तक यह एसिड अनुपालन है। रेडिस के पास केवल "लेनदेन के लिए आंशिक समर्थन" है। HBase सीधे एसिड कंप्लेंट (देवों से) नहीं है , न ही कैसंड्रा है। यह जवाब वास्तव में गलत है। इनमें से कोई भी डेटाबेस ACID का समर्थन नहीं करता है, और उनमें से अधिकांश खुले तौर पर एक साधारण Google खोज के साथ स्वयं के हैं।
इवान कैरोल

@ EvanCarroll मैंने कभी नहीं लिखा कि MongoDB ACID के अनुरूप है, ACID RDCMS लेनदेन के समान अर्थ में। कोई लेनदेन उपलब्ध नहीं है। मैंने जो लिखा है वह यह है कि अधिकांश NoSQL डेटाबेस ACID RDBMS की तरह ही सुरक्षित हो सकते हैं, उचित सेटिंग्स के साथ । उदाहरण के लिए, किसी भी साझा क्लस्टर के बिना DB के लिए $ पृथक MongoDB ऑपरेटर की जाँच करें । मैं वित्तीय प्रक्रिया के लिए कभी भी MongoDB का उपयोग नहीं करूंगा, लेकिन मैं ACID जैसे संचालन के लिए इसकी लेखन प्रक्रिया पर कुछ विस्तार कर सकता हूं, यदि A एटमिटी के लिए पर्याप्त है। क्षमा करें यदि मेरा उत्तर भ्रमित कर रहा है।
अरनौद बुचेज़

18

FoundationDB ACID अनुपालन है:

http://www.foundationdb.com/

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


6
दुर्भाग्य से यह खुला स्रोत नहीं है। लेकिन यह एक बहुत अच्छा डेटाबेस की तरह दिखता है।
केविन कॉक्स

@ केन-टिंडेल उत्तर को जोड़ने के लिए, djondb भी NoSQL है और लेनदेन को लागू करता है और यह ACID अनुपालन है। djondb.com मैं इस बात से सहमत हूं कि NoSQL सिर्फ उन सभी डेटाबेस को गढ़ने वाला एक शब्द है जो RDBMS के पारंपरिक नियमों का पालन नहीं करता है, इसका मतलब यह नहीं है कि "TX सिस्टम से छुटकारा पाएं", या रिश्तों के बारे में भूल जाएं।
क्रॉस

3
मेरे उत्तर को Apple के फाउंडेशन DB के अधिग्रहण द्वारा म्यूट किया गया है।
केन टिंडेल

1
नींव अब Apple के खुले स्रोत हैं
RBanerjee

17

इस सवाल में किसी को ओरिएंटबीडी का उल्लेख करना चाहिए : ओरिएंटबीडी एक नोएसक्यूएल डेटाबेस है, कुछ में से एक, जो पूरी तरह से एसीआईडी ​​लेनदेन का समर्थन करता है। ACID केवल RDBMS के लिए नहीं है क्योंकि यह संबंधपरक बीजगणित का हिस्सा नहीं है। इसलिए यह एक NoSQL डेटाबेस है कि ACID का समर्थन करने के लिए संभव है।

यह सुविधा वह है जिसे मैं MongoDB में सबसे अधिक याद करता हूं


ओपन सोर्स ज्यादातर github.com/orientechnologies/orientdb लेकिन बंद किया हुआ सोर्स एंटरप्राइज फीचर्स
basarat

14

ACID और NoSQL पूरी तरह से ऑर्थोगोनल हैं। एक दूसरे को इम्प्रेस नहीं करता।

मेरे पास मेरी मेज पर एक नोटबुक है, मैं इसका उपयोग उन चीजों पर नोट्स रखने के लिए करता हूं जो मुझे अभी भी करना है। यह नोटबुक एक NoSQL डेटाबेस है। मैंने इसे "पेज कैश" के साथ एक रेखीय खोज का उपयोग करके क्वेरी की है, इसलिए मुझे हमेशा हर पृष्ठ को खोजने की आवश्यकता नहीं है। यह एसीआईडी ​​अनुपालन भी है क्योंकि मैं यह सुनिश्चित करता हूं कि मैं एक बार में केवल एक ही चीज लिखूं और जब मैं इसे पढ़ रहा हूं तो कभी भी नहीं।

NoSQL का सीधा सा मतलब है कि यह SQL नहीं है। बहुत से लोग भ्रमित हो जाते हैं और सोचते हैं कि इसका मतलब है अत्यधिक स्केलेबल-वाइल्ड-वेस्ट-सुपर-फास्ट-स्टोरेज। यह नहीं है इसका मतलब की-वैल्यू स्टोर या अंतिम स्थिरता नहीं है। इसका मतलब यह है कि "एसक्यूएल नहीं" है, इस ग्रह में बहुत सारे डेटाबेस हैं और उनमें से अधिकांश एसक्यूएल नहीं हैं [उद्धरण वांछित]

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


3
सिर्फ पांडित्यपूर्ण होने के लिए लेकिन इसका आमतौर पर मतलब है 'न केवल एसक्यूएल' :-)
shmish111

4
@ shmish111 वास्तव में नहीं। इसका मतलब था "नो एसक्यूएल" जब शब्द पहली बार गढ़ा गया था। "ओ" छोटा है, सब के बाद पूंजी नहीं है। बाद में "न केवल एसक्यूएल" के रूप में इस पद को फिर से प्राप्त करने के प्रयास किए गए थे जब इनमें से कुछ (नोएसक्यूएल उत्पादों) ने एसक्यूएल जैसे क्वेरी डेटा इंटरफेस को जोड़ना शुरू किया।
ypercube y

11

"NoSQL" एक अच्छी तरह से परिभाषित शब्द नहीं है। यह बहुत अस्पष्ट अवधारणा है। इस प्रकार, यह कहना भी संभव नहीं है कि "NoSQL" उत्पाद क्या है और क्या नहीं है। लेबल के साथ टाइप किए गए लगभग सभी उत्पाद कुंजी-मूल्य वाले स्टोर नहीं हैं।


3
सबसे बढ़िया उत्तर। जब कभी यह लौ युद्ध आता है, तो मैं दूसरे पक्ष से पूछना चाहता हूं कि उन्हें NoSQL डेटाबेस से स्पष्ट रूप से परिभाषित करने की क्या ज़रूरत है और अक्सर यह उन सुविधाओं के साथ ओवरलैप होता है जो वे RDBMS में पा सकते हैं - इसलिए नहीं कि एक या RDBMSs NoSQL थीम को फिट करते हैं - केवल इसलिए कि उनके फ़ीचर 'आवश्यकताएं' इतनी अस्पष्ट हैं कि वे पूरी तरह से नकारात्मक नहीं करते हैं, आरडीएमबीएस (सभी आवश्यक नहीं) में पाए गए फीचर। आपकी टिप्पणी के लिए +1 दोस्त!
स्टार्टअपगू

8

हां, MarkLogic Server एक NoSQL सॉल्यूशन है (डॉक्यूमेंट डेटाबेस जिसे मैं इसे कॉल करना पसंद करता हूं) जो ACID ट्रांजेक्शन के साथ काम करता है


1
MarkLogic में ACID लेनदेन, बहु-दस्तावेज़ लेनदेन, बहु-स्टेटमेंट लेनदेन और XA के लिए समर्थन - सभी क्लस्टर-वाइड / वितरित हैं।
एरिक बलोच

8

NoSQL का दादा: ZODB ACID कंप्लेंट है। http://www.zodb.org/

हालाँकि, यह केवल पायथन है।


1
अजगर के "आश्रय" पुस्तकालय से संक्रमण की तलाश करने वालों के लिए, मैंने ZODB को लगभग प्रतीत नहीं किया। मुझे अपने सभी कार्यों को फिर से लिखने की ज़रूरत नहीं थी - ज़ेडबीबी को सिर्फ एक शब्दकोष की तरह उपयोग करें, लेकिन यह तेजी से परिमाण का एक क्रम है।
माइकल गैलेक्सी

8

NoSQL के प्रवर्तकों में से एक के रूप में (मैं Apache CouchDB के लिए एक प्रारंभिक योगदानकर्ता था, और 2009 में CBS इंटरएक्टिव / CNET में आयोजित पहली NoSQL घटना में एक वक्ता ) मैं नए एल्गोरिदम को देखने के लिए उत्साहित हूं जो संभावनाएं पैदा करता है जो पहले मौजूद नहीं थे । केल्विन प्रोटोकॉल कैप और PACELC जैसी भौतिक बाधाओं के बारे में सोचने का एक नया तरीका प्रदान करता है ।

सक्रिय / निष्क्रिय async प्रतिकृति, या सक्रिय / सक्रिय सिंक्रोनस प्रतिकृति के बजाय, कैल्विन लेनदेन लॉग बनाए रखने के लिए RAFT जैसे प्रोटोकॉल का उपयोग करके प्रतिकृति आउटेज के दौरान शुद्धता और उपलब्धता को बनाए रखता है। इसके अतिरिक्त, प्रत्येक प्रतिकृति पर लेन-देन को नियतकालिक रूप से संसाधित किया जाता है, गतिरोध की क्षमता को दूर करता है, इसलिए सहमति केवल एक ही दौर की सहमति से हासिल की जाती है। यह दुनिया भर में बहु-क्लाउड पर भी तेजी से तैनाती करता है।

FaunaDB कैल्विन प्रोटोकॉल का उपयोग करने वाला एकमात्र डेटाबेस कार्यान्वयन है, जो इसे वर्कलोड के लिए विशिष्ट रूप से अनुकूल बनाता है जिसमें NoSQL पैमाने और लचीलेपन के साथ मेनफ्रेम जैसी डेटा अखंडता की आवश्यकता होती है।


7

यदि आप एक ACID आज्ञाकारी कुंजी / मूल्य की दुकान की तलाश कर रहे हैं, तो बर्कले DB है । के अलावा ग्राफ डेटाबेस कम से कम Neo4j और HyperGraphDB एसिड लेनदेन (HyperGraphDB वास्तव में पल में निम्न स्तर के भंडारण के लिए बर्कले DB उपयोग करता है) प्रदान करते हैं।


4

NewSQL

यह अवधारणा विकिपीडिया योगदानकर्ताओं के रूप में परिभाषित है:

[...] आधुनिक रिलेशनल डेटाबेस प्रबंधन प्रणालियों का एक वर्ग जो ऑनलाइन लेनदेन प्रसंस्करण (ओएलटीपी) के लिए एक ही स्केलेबल प्रदर्शन प्रदान करने की कोशिश करता है, जो एक पारंपरिक डेटाबेस सिस्टम की एसीआईडी ​​गारंटी को बनाए रखते हुए रीड-राइट वर्कलोड को पढ़ता है।[1][2][3]

संदर्भ

[1]नैन्सी लिंच और सेठ गिल्बर्ट, "ब्रूयर के अनुमान और सुसंगत, उपलब्ध, विभाजन-सहिष्णु वेब सेवाओं की व्यवहार्यता" , एसीएम सिगच न्यूज़, वॉल्यूम 33 अंक 2 (2002), स्नातकोत्तर। 51-59।

[2] " ब्रूअर की कैप प्रमेय" , julianbrowne.com, 02-Mar-2010 को पुनःप्राप्त

[3] " ब्रूवर्स कैप प्रमेय पर वितरित सिस्टम" , royans.net


4

MongoDB ने घोषणा की कि इसका 4.0 संस्करण बहु-दस्तावेज़ लेनदेन के लिए ACID अनुरूप होगा।

संस्करण 4.2। यह तयशुदा सेटअप के तहत समर्थन करने वाला है।

https://www.mongodb.com/blog/post/multi-document-transactions-in-mongodb


हाँ, बहु-दस्तावेज़ ACID लेनदेन अब MongoDB में समर्थित हैं। अधिक जानकारी के लिए mongodb.com/transactions देखें और उन्हें कैसे कार्यान्वित किया गया, इस बारे में गहन जानकारी दें।
ग्रिगोरो मेलनिक

4

FoundationDB का उल्लेख किया गया था और उस समय यह खुला स्रोत नहीं था। यह Apple द्वारा दो दिन पहले खोला गया है: https://www.foundationdb.org/blog/foundationdb-is-open-source/

मेरा मानना ​​है कि यह एसीआईडी ​​कंप्लेंट है।


3

कैप प्रमेय पर एक नज़र डालें

संपादित करें: रेवेनडीबी को एसीआईडी ​​अनुपालन लगता है





2

टारनटूल पूरी तरह से ACID NoSQL डेटाबेस है। आप सीआरयूडी संचालन या संग्रहीत प्रक्रियाओं को जारी कर सकते हैं, सब कुछ एसीआईडी ​​संपत्ति के साथ सख्त अनुसार चलाया जाएगा। आप इसके बारे में यहां भी पढ़ सकते हैं: http://stable.tarantool.org/doc/mpage/data-and-persistin.html


2

MarkLogic भी ACID कंप्लेंट है। मुझे लगता है कि अब सबसे बड़े खिलाड़ियों में से एक है।


1

इंतजार खत्म हुआ।

ACID आज्ञाकारी NoSQL DB बाहर है ----------- साइट्रस पर एक नज़र है


क्या एयरोस्पेस बहु-कुंजी ACID लेनदेन का समर्थन करता है? AKAIK यह एकल-कुंजी लेन-देन तक सीमित है।
eonil

1

बर्गबडी एक हल्के वजन वाला, खुला-स्रोत है, NoSQL डेटाबेस जिसे ACID लेनदेन चलाने के लिए शुरू से डिज़ाइन किया गया है। वास्तव में, बर्गबडी इस अर्थ में सबसे अधिक SQL डेटाबेस से "अधिक" ACID है कि डेटाबेस की स्थिति को बदलने का एकमात्र तरीका ACID लेन-देन को उच्चतम अलगाव स्तर (SQL शब्द: "क्रमबद्ध") से चलाना है। गंदे रीड्स, नॉन-रिपीटेबल रीड्स या फैंटम रीड्स के साथ कोई समस्या नहीं होगी।

मेरी राय में, डेटाबेस अभी भी अत्यधिक प्रदर्शनशील है; लेकिन मुझ पर भरोसा मत करो, मैंने सॉफ्टवेयर बनाया। इसके बजाय खुद कोशिश करें।


1

बहुत सारे आधुनिक NoSQL समाधान ACID लेनदेन (परमाणु पृथक बहु-कुंजी अद्यतन) का समर्थन नहीं करते हैं, लेकिन उनमें से अधिकांश प्राथमिकताओं का समर्थन करते हैं जो आपको आवेदन स्तर पर लेनदेन को लागू करने की अनुमति देते हैं।

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

  1. यदि आपको Serializable आइसोलेशन स्तर की आवश्यकता है तो आप उसी एल्गोरिथ्म का अनुसरण कर सकते हैं, जो Google Perroator सिस्टम के लिए उपयोग करता है या CockroachDB के लिए Cockroach Labs । मैंने इसके बारे में ब्लॉग किया है और चरण-दर-चरण विज़ुअलाइज़ेशन बनाता हूं, मुझे उम्मीद है कि यह एल्गोरिथम के पीछे के मुख्य विचार को समझने में आपकी मदद करेगा।

  2. यदि आप उच्च विवाद की उम्मीद करते हैं, लेकिन यह आपके लिए ठीक है कि प्रतिबद्ध अलगाव स्तर पढ़ें तो कृपया पीटर बेलीस द्वारा RAMP लेनदेन पर एक नज़र डालें।

  3. तीसरा तरीका यह है कि क्षतिपूर्ति लेनदेन का उपयोग सागा पैटर्न के रूप में भी जाना जाता है। इसका वर्णन 80 के दशक के उत्तरार्ध में सागास पेपर में किया गया था, लेकिन वितरित प्रणालियों की वृद्धि के साथ और अधिक वास्तविक हो गया। कृपया प्रेरणा के लिए गाथा पैटर्न लागू करते हुए देखें ।

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



0

VoltDB एक एंट्रेंट है जो ACID अनुपालन का दावा करता है, और जब यह अभी भी SQL का उपयोग करता है, तो इसका लक्ष्य मापनीयता के संदर्भ में समान होता है


2
VoltDB के निर्माता ने उल्लेख किया कि वे खुद को NoSql के रूप में लेबल नहीं करते हैं, लेकिन NewSql की तरह अधिक (फिर भी Sql का उपयोग करते हुए लेकिन उन RDBMs की तुलना में बेहतर कार्यान्वयन के साथ जो अस्सी के दशक में निर्मित थे)
Matt W

0

Whilst यह केवल एक एम्बेडेड इंजन है और सर्वर नहीं है, leveldb में WriteBatch है और ACID व्यवहार प्रदान करने के लिए सिंक्रोनस लिखने की क्षमता है।





-1

न केवल NoSQL डिजाइन द्वारा ACID अनुरूप नहीं है। NoSQL आंदोलन ने बेस (मूल रूप से उपलब्ध, नरम स्थिति, अंततः स्थिरता) को गले लगा लिया जो ACID के विपरीत होने का दावा करता है। NoSQL डेटाबेस को अक्सर Event-Consisted डेटाबेस कहा जाता है। अंतर को समझने के लिए आपको कैप प्रमेय (उर्फ ब्रेवर प्रमेय) में ड्रिल करना चाहिए

यात्रा http://www.julianbrowne.com/article/viewer/brewers-cap-theorem


मुझे लगता है कि कैप प्रमेय का सूचक इस प्रश्न के लिए बहुत प्रासंगिक है!
mxro

2
कुछ NoSQL डेटाबेस में ACID लेनदेन होते हैं।
एरिक बलोच

1
कुछ noSQL ACID के अनुरूप होने का दावा करते हैं, लेकिन जब आप नीचे ड्रिल करते हैं तो आपको पता चलता है कि केवल कुछ विशेष मामलों में ही वे ACID हैं, इसलिए कोई 'अंततः ACID' नहीं है क्योंकि वे निश्चित रूप से ACID नहीं हैं
Ste

1
आप मूल रूप से CAP का गलत उपयोग कर रहे हैं। सीएपी और एसीआईडी ​​शिथिल रूप से सबसे अच्छे से संबंधित हैं, लेकिन सीएपी वितरित सिस्टम को एसीआईडी ​​कंप्लेंट होने से नहीं रोकता है। कैप एक वितरित प्रणाली के अपेक्षित ट्रेडऑफ का वर्णन करता है - एक NoSQL सिस्टम जो दृढ़ता से सुसंगत है एक विभाजन के दौरान अनुपलब्ध हो सकता है, लेकिन यह ACID अनुरूप होने से रोकता नहीं है।
जेफ जिरसा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.