2012-01-27 16 views
6

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

mutator.incrementCounter (rowid1, "cf1", "counter1", value);

उत्तर

7

कैसंड्रा थ्रिफ्ट एपीआई में कोई भी 'incrementAndGet' ऑपरेशन नहीं है।

कैसंद्रा में काउंटर अंततः संगत और गैर-परमाणु हैं। Fragile ConsistencyLevel.ALL ऑपरेशन को "अपडेट होने की गारंटी" काउंटर मान प्राप्त करने की आवश्यकता है, यानी लगातार पढ़ने के लिए। ConsistencyLevel.QUORUM पर्याप्त नहीं है (जैसा कि काउंटर डिज़ाइन दस्तावेज़ में निर्दिष्ट है: https://issues.apache.org/jira/secure/attachment/12459754/Partitionedcountersdesigndoc.pdf)।

incrementAndGet विधि है कि लग रहा है संगत को लागू करने के लिए, आप पहली बार पर काउंटर मूल्य पढ़ चाहते हो सकता है, तो जारी वेतन वृद्धि उत्परिवर्तन, और वापसी (मूल्य पढ़ + इंक)।

उदाहरण के लिए, यदि पिछले काउंटर मान 10 से 20 (विभिन्न प्रतिकृतियों पर) है, और इसमें 50 जोड़ते हैं, तो पूर्व-वृद्धि-वृद्धि 60 या 70 हो जाएगी। और बाद में वृद्धि के बाद भी 10 वापस आ सकता है या 20.

+0

बहुत ही रोचक दृष्टिकोण, धन्यवाद! – tom

+0

यह काउंटरों के मुद्दे को कैसे हल करेगा, परमाणु नहीं है। (हो जाता है 1), वेतन वृद्धि 1 से (जारी कॉल 1 पढ़ने: उदाहरण के लिए, अगर मैं एक और (वेतन वृद्धि और पढ़ें) करना आपरेशन, तो यह संभव है कि मैं अभी भी पुराने मूल्य प्राप्त होगा: कॉल 1: काउंटर वैल), वापसी 2 कॉल 2: (पिछले वेतन वृद्धि कॉल सभी नोड्स के माध्यम से प्रचारित नहीं किया गया है) पढ़ने (हो जाता है 1), द्वारा वेतन वृद्धि 1 (जारी कहते हैं), वापसी 2 –

+0

@AlastorMoody: जैसा कि मैंने कहा, इस विधि की अनुमति देता है काउंटर लागू करने के लिए * * देखो * सुसंगत। चूंकि कैसंड्रा काउंटर अंततः प्रकृति द्वारा सुसंगत होते हैं, इसलिए महत्वपूर्ण प्रदर्शन प्रभाव (यानी वितरित ताले के साथ) पर काउंटर परमाणु बनाना संभव है। यदि आपको वास्तव में परमाणु काउंटर की आवश्यकता है - कैसंड्रा (रेडिस की तरह) – Wildfire

0

ऐसा करने का एकमात्र तरीका इसके लिए पूछताछ है। कैसंद्रा में उपलब्ध कोई वृद्धि-फिर-पढ़ने की कार्यक्षमता नहीं है।

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