4.1 ब्रेवेरा बद्दल सुसंगतता

सुरुवातीला, एरिक ब्रेवर डेटाबेस तज्ञ नाही आणि कधीही दावा केला नाही. तो वितरित प्रणालींच्या समुदायाशी संबंधित आहे आणि त्याचे प्रसिद्ध भाषण, ज्यामध्ये CAP "प्रमेय" दिसून आले, "वितरित संगणनाची तत्त्वे" या परिषदेत दिले गेले. (तसे, दहा वर्षांनंतर, 2010 मध्ये, त्यांनी त्याच परिषदेत पुन्हा आमंत्रित भाषण दिले आणि या भाषणात त्यांनी, विशेषतः, वितरण प्रणालीची अनेक उदाहरणे दिली, ज्याचा विकास विचारात घेतला " CAP चे प्रमेय.) या क्षेत्रात डेटाबेसच्या क्षेत्रात वापरल्या जाणार्‍या संज्ञांचे स्वतःचे स्पष्टीकरण आहे.

विशेषतः, "तात्काळ सातत्य" या शब्दाचा अर्थ असा होतो की वापरकर्त्याला काही डेटा अपडेट ऑपरेशन यशस्वीरित्या पूर्ण झाल्याबद्दल सिस्टमकडून सूचना प्राप्त झाल्यानंतर, या ऑपरेशनचा परिणाम सर्व निरीक्षकांना त्वरित दृश्यमान होतो.

अंतिम सुसंगततेचा अर्थ असा आहे की जर कोणतीही नवीन डेटा अपडेट ऑपरेशन्स पुरेशा दीर्घ कालावधीसाठी सिस्टममध्ये प्रवेश करत नसतील, तर अशी अपेक्षा केली जाऊ शकते की मागील सर्व डेटा अपडेट ऑपरेशन्सचे परिणाम शेवटी सिस्टमच्या सर्व नोड्समध्ये पसरतील आणि सर्व प्रतिकृती डेटा सुसंगत (वरवर पाहता, "सर्व प्रतिकृतींची स्थिती समान असेल" असे समजले पाहिजे.

सुसंगततेची ही भावना लक्षात घेऊन, ब्रेव्हरचे "प्रमेय" समजण्यासारखे आणि स्पष्ट मानले जाऊ शकते: सामायिक डेटासह कोणत्याही वितरित प्रणालीमध्ये, नेटवर्कची सातत्य, उपलब्धता आणि विभाजन सहिष्णुतेचे कोणतेही दोन गुणधर्म एकाच वेळी सुनिश्चित केले जाऊ शकतात. या संदर्भात, ब्रूअर ACID गुणधर्मांच्या संचाचा त्याच्या BASE गुणधर्मांच्या प्रस्तावित संचाशी (मूळत: उपलब्ध, सॉफ्ट-स्टेट, अंतिम सातत्य - बहुतेक प्रकरणांमध्ये उपलब्धता; अस्थिर स्थिती; अंतिम सुसंगतता) विरोधाभास करतो. परंतु हा विरोध, माझ्या मते, अन्यायकारक आहे, कारण पहिल्या प्रकरणात आपण व्यवहारांच्या तार्किक वैशिष्ट्यांबद्दल बोलत आहोत आणि दुसर्‍या प्रकरणात - वितरित प्रणालींच्या भौतिक गुणधर्मांबद्दल.

4.2 "प्रमेय" चा पुरावा

अनेकांचा असा विश्वास आहे की ब्रेव्हरचे "प्रमेय" औपचारिकपणे सिद्ध झाले आहे. खरंच, सेठ गिल्बर्ट आणि नॅन्सी लिंच यांच्या पेपरमध्ये काही (जवळजवळ) औपचारिक व्याख्या आहेत ज्या संदर्भात "प्रमेय" खरोखर एक प्रमेय बनते आणि सिद्ध होते. तथापि, वितरित प्रणालीचे ते तीन गुणधर्म कसे निर्धारित केले जातात ते पाहू या, ज्यापैकी, ब्रूअरच्या "प्रमेय" नुसार, फक्त दोन गुणधर्म एकाच वेळी समर्थित केले जाऊ शकतात.

सुसंगततेला अणू, किंवा रेखीय सुसंगतता (अणू, किंवा रेखीय सुसंगतता) म्हणतात, जी प्रणालीची एक मालमत्ता आहे, ज्यातील सर्व वैयक्तिक डेटा ऑब्जेक्ट्स अणू (रेखीय करण्यायोग्य) आहेत. या बदल्यात, अणु ऑब्जेक्ट ही अनेक ऑपरेशन्स असलेली एक वस्तू आहे, जसे की ऑपरेशनचा कॉल आणि प्रतिसाद डेटाची पावती तत्काळ घडते, म्हणजे. मागील ऑपरेशन पूर्णपणे पूर्ण होईपर्यंत ऑब्जेक्ट पुढील ऑपरेशनचा कॉल स्वीकारत नाही. ज्या क्रमाने ऑपरेशन्स प्राप्त होतात तो असा असावा की जर काही लेखन-प्रकार ऑपरेशन झाल्यानंतर वाचन-प्रकारचे ऑपरेशन आले, तर रीड ऑपरेशनने या किंवा नंतरच्या काही लेखन ऑपरेशनद्वारे लिहिलेले मूल्य परत करणे आवश्यक आहे.

नॉन-फेल नोडद्वारे प्राप्त झालेल्या प्रत्येक विनंतीला उत्तर दिले जाणे आवश्यक असल्यास वितरित प्रणाली नेहमीच उपलब्ध असते. नेटवर्क विभाजनासाठी सिस्टमची लवचिकता एका नोडमधून दुसर्‍या नोडवर पाठवलेल्या संदेशांची अनियंत्रित संख्या गमावल्यास सिस्टमच्या व्यवहार्यतेचे संरक्षण म्हणून मॉडेल केले जाते.

या व्याख्यांच्या आधारे, हिल्बर्ट आणि लिंच खालील प्रमेय तयार करतात (असिंक्रोनस नेटवर्क मॉडेलमध्ये कोणतेही घड्याळ नाही आणि नोड्सने केवळ प्राप्त संदेश आणि स्थानिक गणनांच्या आधारावर निर्णय घ्यावा):

असिंक्रोनस नेटवर्क मॉडेलमध्ये, सर्व वैध अंमलबजावणीसाठी (मेसेज गमावणाऱ्यांसह) उपलब्धता आणि अणु सुसंगतता गुणधर्मांची हमी देणारे वाचन/लेखन डेटा ऑब्जेक्ट लागू करणे शक्य नाही.

हे प्रमेय खरोखर "विरोधाभास" पद्धतीने औपचारिकपणे सिद्ध झाले आहे. लेख पुढे असा निष्कर्ष काढतो की:

असिंक्रोनस नेटवर्क मॉडेलमध्ये, सर्व वैध अंमलबजावणीसाठी प्रवेशयोग्यता गुणधर्म आणि संदेश हरवलेल्या वैध अंमलबजावणीसाठी अणु सुसंगततेची हमी देणारे वाचन/लेखन डेटा ऑब्जेक्ट लागू करणे शक्य नाही.

याव्यतिरिक्त, मुख्य प्रमेयचे सत्य अंशतः सिंक्रोनस नेटवर्क मॉडेलसाठी सिद्ध केले आहे, ज्यामध्ये प्रत्येक नोडमध्ये एक घड्याळ आहे, ज्याद्वारे दर्शविलेले वेळ समान दराने वाढते, परंतु जे समक्रमित केले जात नाही, म्हणजे. एकाच वास्तविक क्षणी वेगवेगळ्या वेळा दाखवू शकतात. हे दर्शविले आहे की या प्रकरणात समान परिणाम प्राप्त होत नाही आणि म्हणूनच, अंशतः सिंक्रोनस नेटवर्कसाठी "चांगल्या" गुणधर्मांसह वितरित प्रणाली आयोजित करण्याच्या अधिक शक्यता आहेत.

होय, एका अर्थाने (ब्रेव्हरच्या हेतूप्रमाणेच असणे आवश्यक नाही) गिल्बर्ट आणि लिंच यांनी हे सिद्ध केले आहे की एकाच वितरण प्रणालीमध्ये नेटवर्कचे अणू सुसंगतता, उपलब्धता आणि विभाजन सहिष्णुतेचे गुणधर्म एकाच वेळी सुनिश्चित करणे अशक्य आहे. पण याचा सर्वसाधारणपणे डेटाबेस व्यवहारांशी आणि विशेषतः ACID व्यवहारांशी काय संबंध आहे?

4.3 ACID व्यवहार

CAP च्या "प्रमेय" च्या चर्चेवर ज्युलियन ब्राउन यांनी याविषयी लिहिलेल्या नोटमध्ये हे आहे:

त्यांच्या पुराव्यामध्ये, हिल्बर्ट आणि लिंच सातत्यऐवजी अणुप्रमाण हा शब्द वापरतात, जे तांत्रिक दृष्टिकोनातून अधिक अर्थपूर्ण आहे कारण, काटेकोरपणे सांगायचे तर, ACID च्या अर्थाने सुसंगतता डेटाबेस व्यवहारांच्या आदर्श गुणधर्मांना सूचित करते आणि याचा अर्थ असा होतो की कोणताही डेटा वापरला जाणार नाही. जर त्यांनी काही पूर्व-स्थापित निर्बंधांचे उल्लंघन केले तर ते चिकाटीने बनतात. परंतु जर आपण असे गृहीत धरले की वितरित प्रणालीची पूर्व-स्थापित मर्यादा ही समान डेटा घटकासाठी अनेक भिन्न मूल्यांच्या उपस्थितीवर प्रतिबंध आहे, तर माझ्या मते, सुसंगततेच्या अमूर्ततेतील हा दोष मानला जाऊ शकतो. क्षुल्लक (याव्यतिरिक्त, जर ब्रेवरने अणुत्व हा शब्द वापरला तर AAP प्रमेय दिसून येईल, ज्याचे नाव उच्चारणे अत्यंत गैरसोयीचे असेल).

हे फार गांभीर्याने नाही तर प्रामाणिकपणे लिहिले आहे. आणि, खरं तर, अणू सुसंगततेची आवश्यकता ACID च्या अर्थाने व्यवहाराच्या सुसंगततेच्या आवश्यकतांसह मिसळली जाऊ नये. डेटाबेस अखंडता मर्यादा तार्किक आहेत, जर तुम्ही इच्छित असाल तर, व्यवसाय आवश्यकता. ते अॅप्लिकेशन डोमेन लॉजिकमधून येतात. अणू सुसंगततेची आवश्यकता खूप वेगळ्या प्रकारची आहे. ही अंमलबजावणीची आवश्यकता आहे जी डेटाबेस उद्योगामध्ये भौतिक सुसंगतता म्हणून पारंपारिकपणे संदर्भित केलेल्या श्रेणीमध्ये येते (उदाहरणार्थ, कोणतेही निर्देशांक बदल ऑपरेशन करताना, संबंधित B+ ट्रीच्या सर्व ब्लॉक्समध्ये वैध मूल्ये असणे आवश्यक आहे आणि वैध संदर्भांद्वारे लिंक केलेले असणे आवश्यक आहे. ).

आणि डेटाबेस समुदायाचे प्रतिनिधी डॅनियल अबादी आणि अलेक्झांडर थॉमसन त्यांच्या नोटमध्ये गंभीरपणे काय लिहितात ते येथे आहे:

... स्केलेबल ट्रान्झॅक्शनल सिस्टीमच्या उपलब्धतेची आवश्यकता अधिकाधिक गंभीर होत चालली आहे, आणि हे सहसा नोड्सपैकी एक अयशस्वी झाल्यास विनंत्यांच्या प्रतिकृती आणि स्वयंचलित पुनर्निर्देशनाद्वारे पूर्ण केले जाते. त्यामुळे, अॅप्लिकेशन डेव्हलपर अशी अपेक्षा करतात की ACID सिस्टीमची सातत्य हमी (मूळतः वापरकर्ता-परिभाषित अपरिहार्यतेसाठी स्थानिक समर्थनासह) मजबूत सुसंगतता सुनिश्चित करण्यासाठी विस्तारित केली जाईल (की कोणत्याही वेळी समान डेटाच्या सर्व प्रतिकृती एकसारख्या प्रती असतील, उदा. या केसची सुसंगतता CAP/PACELC च्या अर्थाने निहित आहे.

दुस-या शब्दात सांगायचे तर, ब्रूअर कंसिस्टन्सीचा ACID च्या अर्थाने सुसंगततेशी काहीही संबंध नाही, परंतु डेटा प्रतिकृतीद्वारे उच्च उपलब्धता प्रदान करण्यावर लक्ष केंद्रित केलेल्या प्रणालींमध्ये मजबूत प्रतिकृती सातत्य राखणे इष्ट आहे. ही ACID गुणधर्म नाही, परंतु मोठ्या प्रमाणात समांतर DBMS चे तांत्रिक (भौतिक) वैशिष्ट्य आहे जे अनुप्रयोग विकास सुलभ करते.

मायकेल स्टोनब्रेकरच्या मते, उच्च-गुणवत्तेचे आधुनिक डीबीएमएस तयार करण्याची गुरुकिल्ली ही तांत्रिक तडजोडीची योग्य निवड आहे. विशिष्ट अभियांत्रिकी सोल्यूशन निवडताना, अनेक घटक विचारात घेतले पाहिजेत - भविष्यातील वापरकर्त्यांच्या आवश्यकता, विविध अपयशी परिस्थितींची शक्यता इ. आणि कोणत्याही सामान्य सैद्धांतिक मार्गदर्शक तत्त्वांद्वारे (सीएपी "प्रमेय" सह) कट्टरपणे मार्गदर्शन केले जाऊ नये.

स्टोनब्रेकरचा असा विश्वास आहे की व्यवहाराच्या समांतर डेटाबेस सिस्टमच्या क्षेत्रात, उच्च उपलब्धता आणि नेटवर्क विभाजन सहिष्णुतेला समर्थन देण्याच्या बाजूने ब्रूअरची सातत्य सोडून देणे हे एक खराब व्यापार-ऑफ आहे कारण (अ) प्रतिकृती सातत्य हे सिस्टमचे एक अतिशय उपयुक्त वैशिष्ट्य आहे; (b) व्यवहारात मोठ्या प्रमाणात समांतर DBMS ला मोठ्या संख्येने नोड्स असलेल्या क्लस्टर्सची आवश्यकता नसते, त्यामुळे नेटवर्क विभाजित परिस्थिती संभवत नाही; (c) प्रणाली सहजपणे अनुपलब्ध होऊ शकते, नेटवर्क विभाजनामुळे नाही तर, उदाहरणार्थ, नियमितपणे होणार्‍या सॉफ्टवेअर त्रुटींमुळे.

अशाप्रकारे, NoSQL शिबिराच्या प्रतिनिधींची उच्च क्रियाकलाप (NoACID वाचा), जे सहसा ब्रूअरच्या "प्रमेय" चा संदर्भ देतात, ते ACID व्यवहारांना समर्थन देणारे मोठ्या प्रमाणात समांतर व्यवहार DBMS तयार करण्याच्या सैद्धांतिक अशक्यतेशी जोडलेले नाही, परंतु सरलीकृत प्रणालींशी संबंधित आहे. जे केवळ ACID व्यवहारांना समर्थन देत नाही तर प्रतिकृती सुसंगतता देखील सुलभ आणि जलद तयार केली जाते. त्यांच्या सोप्या संस्थेमुळे, ते अतिशय जलद डेटा प्रक्रिया करण्यास सक्षम आहेत आणि काही अनुप्रयोगांसाठी हे डेटाबेस तंत्रज्ञानामध्ये अंतर्भूत असलेल्या सर्व सोयींपेक्षा अधिक महत्त्वाचे आहे.

डेटाबेस समुदाय या आव्हानाला कसा प्रतिसाद देतो ते पाहू या.