2016-01-14 5 views
8

विशेष रूप से मैं this page देख रहा था जहां यह कहते हैं:लाइटवेट लेनदेन का उपयोग करने के क्या प्रभाव हैं?

हल्के लेनदेन एक विभाजन के भीतर एक पंक्ति में लिखने के लिए उपयोग किया जाता है, तो दोनों पढ़ने और लिखने के संचालन के लिए केवल हल्के लेनदेन किया जाना चाहिए।

मैं उलझन में हूं कि पढ़ने के लिए एलडब्ल्यूटी का उपयोग करने के लिए क्या लगता है। विशेष रूप से यह प्रति-क्वेरी स्थिरता (और धारावाहिकसंवेदनशीलता) स्तर से कैसे संबंधित है।

descriptionSERIAL पढ़ने स्थिरता आगे के प्रश्न को जन्म देती है के लिए:

की अनुमति देता है एक नया इसके अतिरिक्त या अद्यतन प्रस्ताव के बिना डेटा की वर्तमान (और संभवतः अप्रतिबद्ध) राज्य पढ़ने।

यह बताता है कि पढ़ने के लिए SERIAL का उपयोग करना "एलडब्ल्यूटी का उपयोग नहीं करना" है।

लेकिन तब

  • कैसे कैसेंड्रा में प्रगति लेनदेन के लिए जाँच करने के लिए जब आप एक पढ़ा करते हैं पता है?
  • क्या है नया अद्यतन है कि प्रस्ताव है, जबकि आप को पढ़ने के लिए कोशिश कर रहे हैं, और यह कैसे पढ़ा प्रभावित करता है?
  • कैसे है कि काम करता है, तो स्थिरता आप पर (जैसे कि उदाहरण के लिए ONE) पढ़ रहे हैं लेखन के लिए इस्तेमाल किया serialConsistency से भी कम है होगा?
  • एक बार जब आप एक मेज (या पंक्ति ?, या स्तंभ?) पर एक LWT उपयोग करते हैं, सभी गैर SERIAL quorums और लेनदेन एल्गोरिथ्म में भाग लेने के दंड लेने के लिए मजबूर पढ़ने कर रहे हैं?
  • आवश्यकता वास्तव में पूरी पंक्ति, या बस कॉलम सशर्त बयान में शामिल करने के लिए लागू होता है?

यदि मैं इस सलाह को अनदेखा करता हूं और दोनों धारावाहिक और गैर-धारावाहिक पढ़ता/लिखता हूं। एलडब्ल्यूटी के लिए किस तरह से असफल रहा?

+0

संबंधित: http://stackoverflow.com/q/28836083/476716 – OrangeDog

उत्तर

6

कैसंद्रा पढ़ते समय प्रगति लेनदेन की जांच कैसे करता है?

यह ठीक है SERIAL स्थिरता स्तर इंगित करता है। यह सुनिश्चित करता है कि सभी लंबित लेनदेन पूरी तरह से निष्पादित होने के बाद एक प्रश्न केवल परिणाम लौटाएगा।

जब आप पढ़ने की कोशिश कर रहे हैं तो नया अपडेट क्या है, और यह पढ़ने को कैसे प्रभावित करता है?

मुझे लगता है कि डॉक्टर क्या कहने की कोशिश कर रहा है यह है कि पढ़ने को एलडब्ल्यूटी की तरह ही संभाला जाएगा - बस इसके बारे में कोई अपडेट किए बिना।

यदि आप जिस स्थिरता को पढ़ रहे हैं (उदाहरण के लिए एक कहें) उस काम को कैसे काम करेगा, धारावाहिक कॉन्सटेंसी से लिखने के लिए उपयोग किया जाता है?

SERIAL का उपयोग करके पढ़ता है QUORUM हमेशा स्थिरता स्तर के रूप में दर्शाता है। ONE के साथ पढ़ना आपको SERIAL द्वारा प्रदान की गई कोई भी गारंटी प्रदान नहीं करेगा और आप स्टॉल किए गए डेटा को पढ़ सकते हैं।

एक बार जब आप एक मेज (या पंक्ति ?, या स्तंभ?) पर एक LWT उपयोग करते हैं, सभी गैर धारावाहिक quorums और लेनदेन एल्गोरिथ्म में भाग लेने के दंड लेने के लिए मजबूर पढ़ने कर रहे हैं?

नहीं। आप अपने प्रश्नों के लिए गैर-सीरियल स्थिरता स्तर का उपयोग कर सकते हैं और उन्हें किसी भी अन्य गैर-धारावाहिक प्रश्नों के समान सटीक प्रदर्शन विशेषताओं के साथ निष्पादित कर सकते हैं।

क्या आवश्यकता वास्तव में पूरी पंक्ति पर लागू होती है, या केवल सशर्त बयान में शामिल कॉलम?

नहीं, मुझे लगता है कि जब तक आप धारावाहिक पढ़ने/लिखने (शर्तों सहित) और नियमित पढ़ने/लिखने के लिए विभिन्न कॉलम का उपयोग करते हैं, तब तक आपको ठीक होना चाहिए।

यदि मैं इस सलाह को अनदेखा करता हूं और दोनों धारावाहिक और गैर-धारावाहिक पढ़ता/लिखता हूं। एलडब्ल्यूटी के लिए किस तरह से असफल रहा?

आप नियमित रूप से लेखन, नहीं एक LWT के हिस्से के रूप निष्पादित किया जा रहा पर अमल करता है तो उन्हें लेखन LWTs की आम सहमति की प्रक्रिया के साथ सब पर हस्तक्षेप किए बिना किसी भी समय लागू किया जाएगा। नतीजतन, नियमित रूप से लिखने से सिद्धांत में एक मूल्य बदल सकता है जो कि स्थिति का मूल्यांकन करने और अद्यतन को लागू करने के बीच एक समय में एलडब्ल्यूटी स्थिति का हिस्सा होता है, जो कि एलडब्ल्यूटीएस का उपयोग करने से बचने के लिए असंगतताओं का एक संभावित कारण है।

+0

एलडब्ल्यूटी को हमेशा विभाजन कुंजी के संदर्भ में निष्पादित किया जाएगा। –

+1

"सीरियल का उपयोग करके पढ़ता है हमेशा क्वायरम को स्थिरता स्तर के रूप में दर्शाता है।" क्या आपको यकीन है? शायद यह ड्राइवर पर निर्भर करता है। जावा डेटास्टैक्स कॉन्सिस्टेंसीलेवल # से सीरियल स्रोत कोड: https://www.insight.io/github.com/datastax/java-driver/blob/3.x/driver-core/src/main/java/com/datastax/ चालक/कोर/संगति Level.java, "यह स्थिरता स्तर धारावाहिक है या नहीं, यानी, केवल हल्के लेनदेन के" पैक्सो "चरण पर लागू होता है"। – skeller88

संबंधित मुद्दे