2016-11-22 18 views
9

मैंने अभी देखा है कि the release notes में कॉचडब 2.0 के, यह उल्लेख किया गया है कि नए अनुप्रयोगों के लिए आम प्रश्नों की सिफारिश की जाती है। यह भी mentionned है कि जाहिरा तौर पर आम अनुक्रमित तेजी जावास्क्रिप्ट प्रश्नों जो वास्तव में मुझे हैरान कर दिया की तुलना में X10 के लिए 2x से कर रहे हैं, इस तरह के रूप में मैं सवालों की एक संख्या है:कॉचडब आम प्रदर्शन बनाम मानचित्र कम करें

  • Are मानचित्र/कम विचारों वापस लिया जा रहा? मुझे जवाब होने की उम्मीद है क्योंकि ऐसा लगता है कि आम में नक्शा/कमी (सबसे आसान उदाहरण खुद को कम करने) के सभी उपयोग मामलों को शामिल नहीं किया गया है, और इस क्वेरीिंग शैली की लचीलापन भी अधिक सीमित प्रतीत होती है। लेकिन मीटर सिफारिश की वजह से पूछने के लिए पसंद करते हैं:

हम अनुशंसा करते हैं सभी नई एप्लिकेशन डिफ़ॉल्ट के रूप में आम का उपयोग शुरू।

  • हम जानते हैं कि मानचित्र/कम विचारों बी पेड़ पर भरोसा करते हैं, लेकिन मैं दस्तावेज़ या आम के पीछे जादू के बारे में मेलिंग सूची में किसी भी जानकारी नहीं मिल रहा है,। आम तौर पर मिनट में आम मेरे लिए सफेद जादू है। फिर भी मैं यह बता सकता हूं कि दृश्यों के पीछे जावास्क्रिप्ट दृश्यों को कैसे अनुक्रमित किया गया है, इस बारे में गहन ज्ञान है कि दोषों, निष्पक्ष कार्यान्वयन के साथ-साथ प्रदर्शन को अनुकूलित करने के लिए व्यापक रूप से सहायक था। क्या किसी के पास मैंगो कैसे काम करता है इस पर कोई अंतर्दृष्टि है? इंडेक्स बी-पेड़ भी हैं? सूचकांक कब अपडेट किए जाते हैं क्योंकि अब डिज़ाइन दस्तावेज़ नहीं हैं? प्रदर्शन लाभ कहां से आते हैं? (इन लाभ जवाबी सहज ज्ञान युक्त मेरे लिए कर रहे हैं, मेरी समझ में के बाद से, जावास्क्रिप्ट प्रश्नों के प्रदर्शन मानचित्र कार्यों का precomputed प्रकृति से आया है)

क्या मैं अनिवार्य रूप से करने के बाद कर रहा हूँ एक हाथ पर कुछ आम के बारे में जानकारी है और दूसरी तरफ, 2.x युग में आम और मानचित्र/कमी को एक साथ रहने के तरीके के बारे में एक सिंहावलोकन।

उत्तर

3

उत्तर:

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

आम के नीचे एरलांग मानचित्र/कम का उपयोग कर रहा है। जिसका अर्थ है कि यह मानचित्र/कम करने की तरह बी-पेड़ इंडेक्स बनाना है। यह है जो जावास्क्रिप्ट के के बजाय बी-ट्री बनाने के लिए एरलांग/मूल कार्यों का उपयोग कर रहा है। मैंने लंबे समय से पहले एक ब्लॉग पोस्ट लिखा था जो पाउचडीबी-खोज [1] के आंतरिक के बारे में है जो PouchDB के लिए आम वाक्यविन्यास है। यह आपको थोड़ा और समझने में मदद करता है कि आंतरिक कैसे काम करते हैं। कुंजी समझने की बात यह है कि एक नक्शा क्वेरी भाग है जो बी-ट्री और इन-मेमोरी फ़िल्टर का उपयोग करता है। आदर्श रूप से फ़िल्टर करने वाली कम मेमोरी तेज़ी से आपकी क्वेरी होगी।

मैं कहूंगा कि आम प्रक्रिया में बहुत काम है लेकिन मूल ग्राउंड काम किया जाता है। निश्चित रूप से चीजें हैं जिन पर हम सुधार कर सकते हैं। मैंने देखा है कि डेवलपर्स ने एक नया प्रोजेक्ट शुरू किया है क्योंकि यह मूल क्वेरीिंग करने के लिए तेज़ और सरल है, जैसे ईमेल पता या "जॉन रैम्बो" नाम से सभी उपयोगकर्ताओं को ढूंढें।

उम्मीद है कि मदद करता है।

[1] http://www.redcometlabs.com/blog/2015/12/1/a-look-under-the-covers-of-pouchdb-find

+0

इस उत्तर का स्रोत क्या है? मुझे पता है कि यह एक मूल डेवलपर से है - कौन? –

7

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

  1. मैंगो उन प्रश्नों से निपटने के दौरान छोटी है जो उपयोग करने के लिए इंडेक्स निर्दिष्ट नहीं करते हैं। पिछले सप्ताह के आखिर में इसने मुझे बल्लेबाजी की। यदि आप इंडेक्स निर्दिष्ट नहीं करते हैं, तो कभी-कभी एक वैकल्पिक अनुक्रमणिका का चयन किया जाएगा और कोई (या गलत) परिणाम नहीं लौटाएंगे।
  2. आम प्रदर्शन 'जादू' नहीं है। स्मृति खोजों में कई प्रकार के प्रश्न खत्म हो जाएंगे। कोच सर्वश्रेष्ठ फिट इंडेक्स का चयन करेगा, फिर कोने के मामलों में फिट करने के लिए स्मृति में उन सभी रिकॉर्ड्स के माध्यम से मार्च करें। इन पाठों में से कुछ पर क्लाउडेंट हैंड तरंगें 'टेक्स्ट' आधारित खोजों का उपयोग करके कह रही हैं, जो कॉचडब में उपलब्ध नहीं हैं।
  3. जैसा कि आपने बताया है, आम की खोज आसानी से कुछ प्रकार के क्वेरी निर्माण को संभाल नहीं सकती है। मैं अपने ऐप को अत्यधिक जटिल नहीं मानूंगा, फिर भी मैं कई परिस्थितियों में भाग गया जहां मैं काम के लिए एक उपयुक्त आम प्रश्न नहीं बना सका। यहां एक प्रमुख एक टैग खोजने के लिए सरणी खोज रहा है (उदाहरण के लिए, यह देखने के लिए कि उपयोगकर्ता समूह के सदस्य क्या हैं) खोज रहे हैं। आम स्मृति में पूर्ण स्कैन करने के लिए सरणी तत्वों को सरणीकृत नहीं कर सकता है।
  4. दृश्यों के रूप में खोज परिणामों के परिवर्तन के लिए दृश्यों में कुछ बहुत ही शक्तिशाली विशेषताएं हैं। यह आम में मौजूद नहीं है।

आपका माइलेज भिन्न हो सकता है, लेकिन सिर्फ एक चेतावनी छोड़ना चाहता था कि यह अभी भी काफी नई विशेषताएं है।

+0

दृश्य और सूचियों एक अविश्वसनीय कॉम्बो हैं। सूचियों को बहिष्कृत करने के लिए दुख की बात है। –

1

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

मुझे पता चला कि आपके कुछ दस्तावेज़ बड़े होने पर भी आम अच्छी तरह से काम करता है। वर्तमान में कॉच डीबी 2.0.0 के साथ, कम से कम खिड़कियों के साथ, बड़े दस्तावेज़ नक्शा/घटा के साथ इस्तेमाल किए गए couchjs.exe व्यू सर्वर को क्रैश करते हैं। यह CouchDB 1.6.1 के साथ ऐसा नहीं है और पहले से ही विकास संस्करण में तय हो गई है एक कोर डेवलपर की ओर से https://github.com/apache/couchdb-couch/commit/1659fda5dd1808f55946a637fc26c73913b57e96

+0

मैं बड़े दस्तावेज़ों के साथ इस मेमोरी मुद्दे की पुष्टि कर सकता हूं और मेरे लिए भी कॉचज एक बड़ी समस्या रही है। – reddy

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