2012-09-24 14 views
5

मैं इस बारे में उत्सुक हूं कि कैसे CouchDB व्यू API की stale=update_after सुविधा।CouchDB के stale = update_after का प्रदर्शन क्या है?

मैं here कि यह बासी परिणाम देता है और उसके बाद देख सकते हैं दृश्य को अद्यतन करता:

बासी तो = ठीक सेट किया गया है, CouchDB दृश्य भले ही वह बासी है ताज़ा नहीं होगा, लाभ एक एक बेहतर है क्वेरी विलंबता। यदि stale = update_after सेट है, तो स्टेल परिणाम लौटाए जाने के बाद CouchDB दृश्य अपडेट कर देगा। update_after संस्करण 1.1.0 में जोड़ा गया था।

मान लें कि मैं दस्तावेजों में से कुछ बड़ी संख्या में डाला है - दृश्य सूचकांक अद्यतन करने के लिए कई मिनट की आवश्यकता होती है करने के लिए पर्याप्त - और फिर मैं stale=update_after साथ तेजी से उत्तराधिकार में दो बार दृश्य क्वेरी। पहली क्वेरी बहुत जल्दी वापस आ जाएगी; यह update_after का पूरा बिंदु है।

मेरा सवाल है, क्या दूसरी क्वेरी भी बदले के परिणाम तुरंत वापस कर देगी, या क्या यह देखने के लिए दृश्य को समाप्त करने की प्रतीक्षा करेगा?

उत्तर

5

दूसरी क्वेरी भी stale परिणाम देता है। यह आंशिक परिणाम का उपयोग करता है जो उस समय उपलब्ध होते हैं जब क्वेरी सर्वर को हिट करती है। यदि आपने अभी दस्तावेज़ जोड़े हैं, तो आप ठीक हैं।

लेकिन यदि आपने अपना विचार संशोधित किया है, तो पहली क्वेरी पहली क्वेरी के परिणाम वापस कर देगी और दृश्य के पूर्ण पुनर्निर्माण को ट्रिगर करेगी। तो दूसरी क्वेरी शायद कोई परिणाम या बहुत कम पंक्तियां प्रदान नहीं करेगी।

तो संक्षिप्त उत्तर: आपके मामले में, दोनों प्रश्न जल्दी से वापस आ जाएंगे, दूसरी क्वेरी शायद पहले के समान परिणाम दे सकती है, शायद कुछ अतिरिक्त पंक्तियों के साथ।

आशा है कि मैं मदद कर सकता हूं!

तुम्हारा, बर्नहार्ड

+1

आप इस दावे के साथ अपने दावे में सामंजस्य कर सकते: "। यह इंडेक्स अपडेट के बाद परिणाम नहीं दिए हैं, लेकिन जब तक दृश्य अद्यतन पूरा हो चुका है भी अन्य ग्राहकों द्वारा किए गए प्रश्नों में देरी हो सकती" (http://blog.safaribooksonline.com/2012/03/14/improving-couchdb-performance/) –

+2

देर से उत्तर के लिए खेद है: stale = update_after हमेशा लौटता है। यदि "अन्य क्लाइंट" stale = update_after का उपयोग नहीं कर रहे हैं, तो उनके प्रश्नों में देरी हो रही है। लेकिन यह थोड़ा भ्रामक है, क्योंकि उनके प्रश्नों में वैसे भी देरी होगी। –

+0

फिर से बर्नार्ड का जवाब देने के लिए धन्यवाद। यह जानना हमेशा वापस आ जाएगा मुझे बहुत मदद की। – Christian

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