Cassandra डेटा मॉडल के साथ लेनदेन



consistency eventual-consistency (1)

यह लोगों को चिंता करता है, लेकिन शायद आप कैसंड्रा का उपयोग कर रहे हैं क्योंकि एक डेटाबेस सर्वर स्केलिंग या विश्वसनीयता की चिंताओं के कारण आपकी आवश्यकताओं को पूरा करने में असमर्थ है इस वजह से, आपको एक वितरित प्रणाली की सीमाओं के आसपास काम करने के लिए मजबूर किया जाता है

असली अभ्यास में, क्या हम हमेशा एसीआईडी ​​सुविधा मध्य में कहीं है? मेरा मतलब है कि आवेदन परत में लागू हो या इसे नियंत्रित करने के लिए एक मिडलवेयर जोड़ें?

नहीं, आपके पास आमतौर पर एसिड कहीं और नहीं है, जैसा कि संभवतः कहीं और भी कई मशीनों पर भी वितरित किया जाना चाहिए। इसके बजाय, आप अपने अनुप्रयोग को डिस्ट्रीब्यूटेड सिस्टम की सीमाओं के आसपास डिज़ाइन करते हैं।

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

यदि आप अपने आवेदन को ऐसे तरीके से बना सकते हैं, तो समन्वय सेवा का उपयोग करके ज़ूकिपर या पिंजरे उपयोगी हो सकते हैं।

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

इस बीच, Cassandra के लिए डेटा मॉडल को डिजाइन करने के लिए सबसे अच्छा अभ्यास है कि हमारे पास होने वाले प्रश्नों के बारे में सोचना होगा, और उसके बाद सीएफ़ जोड़ना होगा। इस प्रकार, एक इकाई को जोड़ने / अपडेट करने के लिए कई मामलों में कई दृश्य / सीएफए अपडेट करने का मतलब है परमाणु लेनदेन की सुविधा के बिना, इसे ठीक करना मुश्किल है लेकिन इसके साथ, हम ए और पी भागों फिर से खो देते हैं।

मुझे यह चिंता बहुत से लोग नहीं देखते हैं, इसलिए मुझे आश्चर्य है कि क्यों

  • क्या यह इसलिए है कि हम एक सत्र में लिखने और लिखने से बचने के लिए हमेशा अपने डेटा मॉडल को डिजाइन करने का एक रास्ता खोज सकते हैं?
  • क्या यह इसलिए है कि हम सिर्फ 'सही' भाग को नजरअंदाज कर सकते हैं?
  • असली अभ्यास में, क्या हम हमेशा एसीआईडी ​​सुविधा मध्य में कहीं है? मेरा मतलब है कि आवेदन परत में लागू हो या इसे नियंत्रित करने के लिए एक मिडलवेयर जोड़ें?