कैसंड्रा थ्रिफ्ट एपीआई में कोई भी 'incrementAndGet' ऑपरेशन नहीं है।
कैसंद्रा में काउंटर अंततः संगत और गैर-परमाणु हैं। Fragile ConsistencyLevel.ALL ऑपरेशन को "अपडेट होने की गारंटी" काउंटर मान प्राप्त करने की आवश्यकता है, यानी लगातार पढ़ने के लिए। ConsistencyLevel.QUORUM पर्याप्त नहीं है (जैसा कि काउंटर डिज़ाइन दस्तावेज़ में निर्दिष्ट है: https://issues.apache.org/jira/secure/attachment/12459754/Partitionedcountersdesigndoc.pdf)।
incrementAndGet विधि है कि लग रहा है संगत को लागू करने के लिए, आप पहली बार पर काउंटर मूल्य पढ़ चाहते हो सकता है, तो जारी वेतन वृद्धि उत्परिवर्तन, और वापसी (मूल्य पढ़ + इंक)।
उदाहरण के लिए, यदि पिछले काउंटर मान 10 से 20 (विभिन्न प्रतिकृतियों पर) है, और इसमें 50 जोड़ते हैं, तो पूर्व-वृद्धि-वृद्धि 60 या 70 हो जाएगी। और बाद में वृद्धि के बाद भी 10 वापस आ सकता है या 20.
बहुत ही रोचक दृष्टिकोण, धन्यवाद! – tom
यह काउंटरों के मुद्दे को कैसे हल करेगा, परमाणु नहीं है। (हो जाता है 1), वेतन वृद्धि 1 से (जारी कॉल 1 पढ़ने: उदाहरण के लिए, अगर मैं एक और (वेतन वृद्धि और पढ़ें) करना आपरेशन, तो यह संभव है कि मैं अभी भी पुराने मूल्य प्राप्त होगा: कॉल 1: काउंटर वैल), वापसी 2 कॉल 2: (पिछले वेतन वृद्धि कॉल सभी नोड्स के माध्यम से प्रचारित नहीं किया गया है) पढ़ने (हो जाता है 1), द्वारा वेतन वृद्धि 1 (जारी कहते हैं), वापसी 2 –
@AlastorMoody: जैसा कि मैंने कहा, इस विधि की अनुमति देता है काउंटर लागू करने के लिए * * देखो * सुसंगत। चूंकि कैसंड्रा काउंटर अंततः प्रकृति द्वारा सुसंगत होते हैं, इसलिए महत्वपूर्ण प्रदर्शन प्रभाव (यानी वितरित ताले के साथ) पर काउंटर परमाणु बनाना संभव है। यदि आपको वास्तव में परमाणु काउंटर की आवश्यकता है - कैसंड्रा (रेडिस की तरह) – Wildfire