2008-09-23 28 views
18

में इंडेक्स अपडेट शेड्यूल कैसे करते हैं, जहां तक ​​मुझे समझ में आता है, जब कोई दृश्य पूछताछ की जाती है तो CouchDB इंडेक्स अपडेट होते हैं। मान लीजिए कि लिखने से ज्यादा पढ़ा जाता है, क्या यह स्केलिंग के लिए बुरा नहीं है? मैं शेड्यूलबी को अनुसूची पर इंडेक्स अपडेट करने के लिए कॉन्फ़िगर कैसे करूं, या बेहतर समय पर, शेड्यूल पर?आप CouchDB

उत्तर

26

कॉच डीबी अपडेट पर विचारों को पुन: उत्पन्न करता है, लेकिन दृश्य के आखिरी पढ़ने के बाद से केवल क्या बदल गया है। अपने पढ़ने की मात्रा को मानना ​​आपके लिखने की मात्रा से काफी अधिक है, यह कोई समस्या नहीं होनी चाहिए।

जब आप एक साथ बड़ी संख्या में दस्तावेज़ बदल रहे हैं तो इससे पहले पढ़ने वाले अनुरोधों की संभावना काफी समय लग सकती है। इसे कम करने के लिए कुछ अलग-अलग संभावनाएं सुझाई गई हैं। अधिकांश कोचडीबी की अपडेट अधिसूचनाओं के साथ पंजीकरण करने पर भरोसा करते हैं और ट्रिगरिंग स्वचालित रूप से पढ़ता है।

कॉच डीबी विकी पर बिल्कुल ठीक करने के लिए एक उदाहरण स्क्रिप्ट [1] पर उपलब्ध है।

[1] http://wiki.apache.org/couchdb/RegeneratingViewsOnUpdate

+0

वहाँ कई मशीनों से अधिक सूचकांक गणना प्रसार करने के लिए या यह स्वचालित रूप से जब एक प्रतिकृति की स्थापना की है किया जाता है कोई तरीका है? –

+0

@ थॉमसफैंकहाउसर: शेर्डिंग?बिगकच – OrangeDog

+0

देखें मैंने स्वचालित रूप से सभी विचारों को ताज़ा करने के कार्य में मदद करने के लिए एक छोटी उपयोगिता बनाई है: [couchdb-utils] (https://github.com/awilliams/couchdb-utils) – acw

5

आप नहीं है और यह भी, तुम ऐसा क्यों चाहेगा कर सकते हैं?

ऐसे ही इसके बारे में सोचो:

  • जब आप MySQL में डेटा आयात आप, क्योंकि यह हर पंक्ति आप सम्मिलित सूचकांक अद्यतन करने के लिए और अधिक महंगा है indizes की बारी कर सकते हैं की तुलना में यह 100 के लिए अनुक्रमणिका को अपडेट करने के लिए है एक ही रन में लिखते हैं (या फिर आप कई पंक्तियां आयात करते हैं)।
  • यही कारण है कि कॉच डीबी इंडेक्स को पढ़ने पर अपडेट करता है क्योंकि एक ही समय में उन 100 परिवर्तनों को एकीकृत करना महंगा होता है, फिर प्रत्येक परिवर्तन जब लिखा जाता है।

यह कॉच डीबी के फायदों में से एक है! :) मैं यह नहीं कह रहा हूं कि यह एक कॉच डीबी केवल सुविधा है, लेकिन इसे पढ़ने पर ऐसा करना बहुत ही स्मार्ट है।

एक चीज जो आप कर सकते हैं अद्यतन = झूठी के साथ पढ़ा जाता है, जो एक गंदे पठन है और जो आप उम्मीद करते हैं वह वापस नहीं कर सकता है। यदि आप हमेशा ऐसा करते हैं, तो आप cronjob के माध्यम से "नियमित" पढ़ सकते हैं और इसके साथ अपनी अनुक्रमणिका अपडेट कर सकते हैं। मुझे नहीं लगता कि यह समझ में आता है।

+0

'stale = true' और' stale = update_after' गंदे पढ़ने के लिए वर्तमान पैरामीटर हैं। उत्तरार्द्ध लौटने के बाद दृश्य सूचकांक भी अद्यतन करता है। – OrangeDog

9

ए) "स्केलिंग" इतना अधिभारित शब्द है। आप किस प्रकार के स्केलिंग का जिक्र कर रहे हैं? (किसी भी तरह से, मैं नहीं देख सकता कि यह आपको नकारात्मक रूप से कैसे प्रभावित करता है)।

बी) लिखने पर अपडेट करें: लिखने के बाद बस अपना विचार पूछें। ध्यान दें कि इंडेक्स में डेटा का एक समूह जोड़ना अधिक संसाधन अनुकूल है (जो कि कॉच डीबी के लिए विशिष्ट नहीं है)। तो आप हर एन लिखने के अपने विचार को ट्रिगर करना चाह सकते हैं।

सी) अनुसूचित: एक क्रोनबॉज सेट करें जो हर एम मिनट में आपके विचार से पूछताछ करे।

डी) कॉच डीबी के लिए आपको बुनियादी ढांचा प्रदान करने के लिए विकसित करने की प्रतीक्षा करें जो आपको इसे कॉन्फ़िगरेशन पैरामीटर के साथ सेट करने की अनुमति देता है।

ई) (सर्वश्रेष्ठ विकल्प)। अपने हाथ गंदे हो जाओ और हमें CouchDB चमकाने में मदद करें! किसी भी योगदान की अत्यधिक सराहना की जाती है।

घ) RTFM (blink :)