4.1 ब्रेवेरा के बारे में संगति

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

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

अंतिम स्थिरता का अर्थ है कि यदि पर्याप्त लंबी अवधि के लिए कोई नया डेटा अपडेट ऑपरेशन सिस्टम में प्रवेश नहीं करता है, तो यह उम्मीद की जा सकती है कि सभी पिछले डेटा अपडेट ऑपरेशन के परिणाम अंततः सिस्टम के सभी नोड्स में फैल जाएंगे, और सभी प्रतिकृतियां डेटा हैं संगत (जाहिरा तौर पर, इसे "सभी प्रतिकृतियों की स्थिति समान होगी" के रूप में समझा जाना चाहिए)।

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

4.2 "प्रमेय" का प्रमाण

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

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

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

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

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

यह प्रमेय वास्तव में "विरोधाभास द्वारा" विधि द्वारा औपचारिक रूप से सिद्ध किया गया है। लेख इस निष्कर्ष पर जाता है कि:

एक अतुल्यकालिक नेटवर्क मॉडल में, एक पढ़ने/लिखने वाले डेटा ऑब्जेक्ट को कार्यान्वित करना संभव नहीं है जो सभी वैध निष्पादनों के लिए अभिगम्यता गुण और मान्य निष्पादनों के लिए परमाणु स्थिरता की गारंटी देता है जिसमें संदेश गुम नहीं होते हैं।

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

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

4.3 एसिड लेनदेन

सीएपी के "प्रमेय" की चर्चा पर अपने नोट में जूलियन ब्राउन इस बारे में लिखते हैं:

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

यह बहुत गंभीरता से नहीं, बल्कि ईमानदारी से लिखा गया है। और, वास्तव में, एसीआईडी ​​​​के अर्थ में परमाणु स्थिरता की आवश्यकता को लेनदेन संबंधी स्थिरता की आवश्यकताओं के साथ मिश्रित नहीं किया जाना चाहिए। डेटाबेस अखंडता की कमी तार्किक है, यदि आप व्यावसायिक आवश्यकताएं करेंगे। वे एप्लिकेशन डोमेन लॉजिक से आते हैं। परमाणु संगति की आवश्यकता एक बहुत ही अलग तरह की है। यह एक कार्यान्वयन आवश्यकता है जो पारंपरिक रूप से डेटाबेस उद्योग में भौतिक स्थिरता के रूप में संदर्भित श्रेणी में आती है (उदाहरण के लिए, किसी भी इंडेक्स चेंज ऑपरेशन को करते समय, संबंधित B+ ट्री के सभी ब्लॉकों में मान्य मान होने चाहिए और मान्य संदर्भों से जुड़े होने चाहिए। ).

और यहाँ डेटाबेस समुदाय के प्रतिनिधि डैनियल अबादी और अलेक्जेंडर थॉमसन ने अपने नोट में काफी गंभीरता से लिखा है:

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

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

माइकल स्टोनब्रेकर के अनुसार, एक उच्च-गुणवत्ता वाले आधुनिक DBMS के निर्माण की कुंजी तकनीकी समझौतों का सही विकल्प है। एक विशिष्ट इंजीनियरिंग समाधान चुनते समय, कई कारकों को ध्यान में रखा जाना चाहिए - भविष्य के उपयोगकर्ताओं की आवश्यकताओं, विभिन्न विफलता स्थितियों की संभावना, आदि, और किसी भी सामान्य सैद्धांतिक दिशानिर्देशों (CAP "प्रमेय" सहित) द्वारा निर्देशित नहीं किया जाना चाहिए।

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

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

आइए देखें कि डेटाबेस समुदाय इस चुनौती का जवाब कैसे देता है।