2015-10-05 7 views
7

मैं जावा ग्राहक और PagingState का उपयोग कर Cassanda 2.2 के साथ बड़े परिणाम सेट का पृष्ठांकन कर यहाँ वर्णित की तरह बर्ताव करता है पर: https://datastax.github.io/java-driver/2.2.0-rc2/features/paging/कैसे कैसेंड्रा पृष्ठांकन समवर्ती आवेषण

कि बहुत अच्छी तरह से काम करता है लेकिन कैसे कैसेंड्रा बर्ताव करता है जब मैं किसी भी जानकारियां नहीं मिल सकता है , परिणामों के माध्यम से पेजिंग करते समय, नए रिकॉर्ड डाले जाते हैं (या मौजूदा वाले अपडेट होते हैं)। क्या परिणाम में ऐसे नए या बदले गए रिकॉर्ड शामिल हैं या परिणाम अपरिवर्तनीय है?

उपयोग केस एक स्टेटलेस वेब सेवा है जहां ग्राहक बड़े परिणाम सेट पूछ सकता है।

संपादित करें: सामान्य रूप में ResultSet पेजिंग के लिए एक ही सवाल (कैसेंड्रा स्वत: आलसी यहाँ लाने करता है)

EDIT2: मेरी जानकारी के लिए कैसेंड्रा कोई एसिड लेकिन चिकित्सा लेनदेन का समर्थन करता है, तो मैं यहाँ अलगाव का एक प्रकार उम्मीद करेंगे जब जा रहा परिणाम

उत्तर

5

के माध्यम से ऐसा कोई अलगाव नहीं है, क्योंकि यह लागू करने के लिए बहुत महंगा होगा। पूरा परिणाम सेट स्मृति में नहीं रखा जाता है, और अगले पृष्ठ में पंक्तियों को वापस करने के लिए जाना जाता है जब वर्तमान को क्लाइंट को भेज दिया जाता है।

एक @ बैच @ किसी दिए गए विभाजन कुंजी से संबंधित में सभी अद्यतन अलगाव में प्रदर्शन कर रहे हैं: इस के

एक दिलचस्प परिणाम यह है कि यह बैच अद्यतन गारंटी टूट जाता है, के रूप में दस्तावेज में कहा गया है।

इस बारे में एक खुला issue है।

कुछ प्रदर्शन प्रभाव भी हैं, क्योंकि पृष्ठ n लाने के लिए किए गए बहुत से काम पृष्ठ n + 1 (जैसे इंडेक्स फ़ाइलों और डेटा फ़ाइलों से खोलना और पढ़ना) लाने के लिए फिर से किया जाना है। कैसंड्रा के लिए एक ड्रॉप-इन प्रतिस्थापन स्सीला, जिसका योगदान मैं करता हूं, fixing this पर काम कर रहा है।

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