Cassandra में सुसंगतता पढ़ें-अपने-खुद-लिखते हैं




consistency eventual-consistency (2)

अच्छा प्रश्न।

हमें http://issues.apache.org/jira/browse/CASSANDRA-876 को कुछ समय के लिए खोलने के लिए मिला है, लेकिन कोई भी इसे खत्म करने की परवाह नहीं करता क्योंकि

  1. CL.ONE बिना किसी अतिरिक्त जिम्नास्टिक्स के बहुत सारे कार्य भार के लिए ठीक है
  2. पढ़ता है कि इतनी तेज़ हो कि अतिरिक्त काम करना एक बड़ा सौदा नहीं है (और वास्तव में मरम्मत, जो डिफ़ॉल्ट रूप से है, इसका मतलब है कि सभी नोड्स वैसे भी जांचें, इसलिए CL.ONE और उच्चतर के बीच का अंतर वास्तव में उपलब्धता के बारे में अधिक है प्रदर्शन से)

उसने कहा, यदि आप मदद करने के लिए प्रेरित हैं, तो टिकट पर पूछें और मैं आपको सही दिशा में बताए खुश रहूंगा।

पढ़-खुद-खुद-लिखते हैं, निरंतरता तथाकथित अंतिम संगतता से महान सुधार है: यदि मैं अपना प्रोफ़ाइल चित्र बदलता हूं तो मुझे कोई परवाह नहीं है कि कोई अन्य मिनट बाद में परिवर्तन को देखता है, लेकिन यह एक अजीब लग रहा है, अगर पेज पुनः लोड होने के बाद भी मैं देखता हूं पुराना वाला।

क्या यह कैसंद्रा में हासिल किया जा सकता है, बिना एक से अधिक नोड पर एक पूर्ण पठन जांच?

एक अनिर्दिष्ट डेटा पढ़ते समय ConsistencyLevel.QUORUM का उपयोग करना ठीक है और n> 1 नोड वास्तव में पढ़े जा रहे हैं हालांकि जब क्लाइंट उसी नोड से पढ़ता है जैसा वह लिखता है (और वास्तव में उसी कनेक्शन का उपयोग कर रहा है) यह बेकार हो सकता है - कुछ डेटाबेस इस मामले में हमेशा सुनिश्चित करेगा कि पहले लिखित (मेरा) डेटा वापस कर दिया गया है, और कुछ पुराने एक नहीं। ConsistencyLevel.ONE का उपयोग करना यह सुनिश्चित नहीं करता है और मानता है कि यह दौड़ शर्तों की ओर जाता है। कुछ परीक्षण से यह पता चला है: http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/per-connection-quot-read-after-my-write-quot-consistency-td6018377.html

इस परिदृश्य के लिए मेरा काल्पनिक सेटअप 2 नोड्स है, प्रतिकृति कारक 2, स्तर 1 पढ़ें, स्तर 1 लिखें। यह अंततः स्थिरता की ओर जाता है, लेकिन मैं चाहता हूं कि पढ़ता-अपने-खुद-लिखता पर सुसंगतता पढ़ता।

मेरे नतीजे में 3 नोड्स, आरएफ = 3, आरएल = कोरम और डब्लूएल = कोरम का उपयोग बेकार से पढ़ने के लिए होता है यदि मैं "मेरे" डेटा पर लगातार चल रहा हूं तो पर्याप्त है

// एसईओ: सत्र निरंतरता के रूप में भी जाना जाता है, पढ़ने-बाद-मेरे-लिखते हुए स्थिरता


मैं थोड़ी देर के लिए कैसांद्रा विकास का अनुसरण कर रहा हूं और मैंने इस तरह उल्लेख किया हुआ एक सुविधा नहीं देखी है।

उसने कहा, अगर आपके पास 2 के दोहराव वाले कारक के साथ 2 नोड हैं, तो मुझे यह सवाल उठाना होगा कि कैसांद्रा सबसे अच्छा समाधान है आप प्रत्येक नोड पर सेट पूरे डेटा के साथ समाप्त होने जा रहे हैं, इसलिए एक अधिक पारंपरिक दोहराया SQL सेटअप सरल और अधिक व्यापक रूप से परीक्षण किया जा सकता है। Cassandra बहुत आशाजनक है, लेकिन यह अभी भी केवल 0.8.2 संस्करण है और समस्याओं को नियमित रूप से मेलिंग सूची पर रिपोर्ट कर रहे हैं।

'मेरे खुद के अपडेट देखें' समस्या को हल करने का दूसरा तरीका ग्राहक के करीब परिणाम को कैश करने के लिए, वेब सर्वर में, अनुप्रयोग परत में, या मेम्कैच जैसे कुछ का उपयोग करने के लिए होगा।