2012-01-23 20 views
5

क्या कॉच डीबी की फ़िल्टर की गई प्रतिलिपि न केवल प्रत्येक दस्तावेज़ का नवीनतम संस्करण, बल्कि प्रत्येक दस्तावेज़ के अंतिम 100 संशोधन को दोहराने के लिए सेट की जा सकती है?क्या कॉच डीबी की फ़िल्टर की गई प्रतिलिपि दस्तावेज़ के पिछले 100 संशोधनों को दोहरा सकती है?

मुझे यह सुविधा चाहिए, क्योंकि मैं प्रत्येक एप इंस्टेंस को चुनने का इरादा रखता हूं कि कौन से हालिया संशोधन (कई स्रोतों से संशोधन आएंगे, प्रत्येक में सटीकता/भरोसेमंदता का एक अलग स्तर होगा) सबसे सटीक है, इसलिए मुझे और चाहिए प्रत्येक डेटाबेस उदाहरण में एक संशोधन से उपलब्ध है।

विशिष्ट यूज-केस इस प्रकार है:

CouchApp 1 एक सुधारवादी संप्रदाय के सभी सभाओं पर डेटा के एक डेटाबेस में शामिल है।

CouchApp 2 में दुनिया भर में सभी सुधारित संप्रदायों में सभी मंडलियों पर डेटा का डेटाबेस शामिल है।

CouchApps 1 & 2 एक-दूसरे के साथ समन्वयित रखने के लिए द्विपक्षीय रूप से दोहराने के लिए सेट अप किए गए हैं, लेकिन CouchApp 1 को CouchApp 2 के संप्रदाय प्रतिकृति फ़िल्टर से केवल एक मूल्य का डेटा अनुरोध करता है।

उपयोगकर्ता 1 अज्ञात है, इसलिए अपेक्षाकृत अविश्वसनीय, और उपयोगकर्ता 2 CouchApp2 का व्यवस्थापक है, इसलिए उच्च स्तर का अधिकार/भरोसेमंदता है। दोनों CouchApps आधिकारिक डेटा से हाल के डेटा 2/3 से अधिक विश्वास करने के लिए सेट हैं।

पहला (समय के क्रम में), आधिकारिक उपयोगकर्ता 2 कलीसिया 1 के बारे में कलीसिया डेटा के 10 संशोधनों को CouchApp 2 (सभी संप्रदायों) में प्रवेश करता है। दूसरा (समय के क्रम में), अज्ञात उपयोगकर्ता 1 कलीसिया 1 के बारे में कलीसिया डेटा के 10 संशोधन में प्रवेश करता है CouchApp 1 (एक मूल्य)।

बिडरेक्शनल प्रतिकृति होती है।

CouchApp 2 (सभी संप्रदायों) डिफ़ॉल्ट रूप से उपयोगकर्ता 1 का डेटा प्रदर्शित करता है, क्योंकि वह डेटा अधिक हालिया है। लेकिन, क्योंकि उपयोगकर्ता 1 ने केवल कुछ (लेकिन सभी नहीं) मंडली 1 के डेटा में प्रवेश किया है, तो CouchApp 2 अन्य सभी क्षेत्रों के लिए उपयोगकर्ता 2 का डेटा प्रदर्शित करता है।

मैं यह कहने के लिए खुला हूं कि एक से अधिक संशोधन को दोहराने के लिए एक ऐप के लिए उपयुक्त नहीं है, या प्रतिकृति के बाद उपयोगकर्ताओं के इनपुट की सटीकता का मूल्यांकन करने के लिए यह उचित नहीं है (इसे प्रतिकृति से पहले किया जा सकता है), या उस सटीकता का मूल्यांकन करने के लिए बिलकुल।

उत्तर

2

क्षमा करें, आप पुराने संशोधन सीधे दोहराने नहीं कर सकते हैं। _rev संख्या का एकमात्र उद्देश्य एमवीसीसी के लिए है और संशोधन इतिहास को ट्रैक करने के लिए डिज़ाइन नहीं किया गया है। ऐसा कहा जा रहा है, ऐसा करने के लिए असंभव नहीं है।

पुराने दस्तावेज़ों को दस्तावेज़ पर JSON अनुलग्नक के रूप में संग्रहीत करने पर विचार करें। यह उन्हें बाकी दस्तावेज़ के साथ सही ढंग से दोहराया जाएगा। इसके अलावा, other strategies हैं कि लोगों ने इस समस्या को जीतने के लिए तैयार किया है। (Google आस-पास और आप शायद और भी अधिक पा सकते हैं)

+0

इस अनुशंसा के लिए धन्यवाद; जैसा कि इसे यहां विस्तार से वर्णित किया गया है http://blog.couchbase.com/simple-document-versioning-couchdb (जो आपके द्वारा संदर्भित पृष्ठ पर लिंक किया गया था) ऐसा लगता है कि यह मुझे जो चाहिए वह प्रदान कर सकता है। – timblack1