2012-05-11 13 views
8

क्या कॉच डीबी के लिए एक नकली बैकएंड है, यानी एक ही आरईएसटी इंटरफ़ेस और अर्थशास्त्र लेकिन पूरी तरह से स्मृति में? हमारे पास एक परीक्षण है जो प्रत्येक परीक्षण को हर बार एक प्राचीन डेटाबेस पर चलाता है (पुन: उत्पन्न करने के लिए), लेकिन वास्तविक डेटाबेस के खिलाफ चलना तेजी से हो सकता है।कॉच डीबी इन-मेमोरी कार्यान्वयन

उत्तर

6

क्या आपका मतलब नकली डेटाबेस के विरुद्ध चल रहा है?

मुझे नहीं लगता कि बॉक्स से कुछ ठीक है। दो विचार:

  1. मेमोरी फाइल सिस्टम पर CouchDB। रैमडिस्क, या tmpfs माउंट सेट करें, और वहां इंगित करने के लिए CouchDB database_dir और view_index_dir कॉन्फ़िगर करें।
  2. PouchDB ब्राउज़र इंडेक्सड डीबी मानक में कॉच डीबी पोर्ट कर रहा है। आपने यह नहीं कहा कि आप कौन सी भाषा और पर्यावरण का उपयोग कर रहे हैं, लेकिन यदि आप नोड.जेएस चला सकते हैं, तो यह देखने लायक हो सकता है। पाउचडीबी की अच्छी गति है और मुझे लगता है कि यह जल्द ही नोड.जेएस में चल रहा है (शायद जेएसडम या किसी अन्य लाइब्रेरी के माध्यम से। नोट, यह आपको पूरा समाधान नहीं मिला है, लेकिन आपने अपना प्रश्न बढ़ाया है "क्या मेमोरी इंडेक्सड डीबी है Node.js के लिए कार्यान्वयन "जिसके लिए उत्तर या तो" हां "या" जल्द ही "है, इसे अपना गोद लेने का प्रक्षेपण दिया गया है।
+1

मैंने "मॉक" शब्द का उपयोग करने से परहेज किया, क्योंकि जो मैं वास्तव में चाहता हूं वह असली डेटाबेस के खिलाफ चलना है, बस तेज बैकएंड (आवश्यक रूप से लगातार नहीं) के साथ। मोक्स कभी 100% संगत नहीं होते हैं, और सटीक मैक्स बनाए रखने के लिए महंगे होते हैं। –

+0

दाएं।आपको एक "नकली" की ज़रूरत है जो वास्तविक चीज़ के प्रति इतनी वफादार है कि वास्तव में असली चीज़ है। यह अच्छा परीक्षण है। दुर्भाग्यवश मेरे पास सूचीबद्ध दो आधा उत्तरों (जो पूरी तरह से जोड़ नहीं है) की तुलना में मेरे पास कोई बेहतर विचार नहीं है। – JasonSmith

0

मुझे एक ही समस्या है ... परीक्षणों के लिए मैं बस एक सेटअप नहीं करना चाहता couchdb ... मैं बस कुछ मेमोरी सामान, जितना संभव हो सके आसान बनाना चाहता हूं।

मैंने क्या किया: * मैं एक मेमोरी कॉच डीबी कनेक्टर बना देता हूं => यह "org.ektorp.CouchDbConnector का एक बहुत ही सरल कार्यान्वयन है " * बसंत से मैं CouchDbCo तार एननेक्शन-कार्यान्वयन जो मुझे चाहिए => जब मैं इसे अपने देव-परीक्षणों के लिए उपयोग करता हूं, तो मैं अपनी मेमोरी कोच डीबी कनेक्टर से तार करता हूं, अगर मैं एक असली कॉच डीबी से कनेक्ट करना चाहता हूं तो मैं सामान्य कनेक्टर => org.ektorp.impl.StdCouchDbConnector

का उपयोग करता हूं

एकमात्र समस्या यह है कि "org.ektorp.CouchDbConnector" में 50 से अधिक विधियां हैं, जिन्हें कार्यान्वित किया जाना चाहिए। मेरे मुद्दों के लिए यह केवल कुछ तरीकों को लागू करने के लिए पर्याप्त था। आपके टेस्टकेस पर निर्भर करता है।

2

यह पाया गया: https://github.com/RipcordSoftware/AvanceDB - यह विभिन्न प्लेटफॉर्म का समर्थन करता है और यह एक गंभीर प्रयास प्रतीत होता है।

+0

यह वास्तव में वास्तव में उपयोगी है! आइए आशा करते हैं कि इससे अधिक गति मिलेगी। –

2

पार्टी के लिए देर से, लेकिन मुझे उपरोक्त PouchDB प्रोजेक्ट (कॉच डीबी का जावास्क्रिप्ट कार्यान्वयन) के आधार पर pouchdb-server का उपयोग करके बड़ी सफलता मिली है। यह विभिन्न प्रकार के बैक-एंड के खिलाफ चला सकता है, जिसमें एक मेमोरी बैक-एंड भी शामिल है। इसका मतलब है कि आप

pouchdb-server --in-memory 

एक मेमोरी CouchDB- संगत सर्वर प्राप्त करने के लिए चला सकते हैं। अन्वेषण करने के लिए कई अन्य कमांड लाइन विकल्प भी हैं।

मुझे लगता है कि यह पूरे कॉच डीबी परीक्षण सूट को चलाने में सक्षम है, इसलिए मुझे लगता है कि यह काफी संभावना है कि आप बहुत से कार्यान्वयन मतभेदों में भाग लेंगे।

-1

memorydbKivik के साथ उपयोग किए जाने के लिए कॉच डीबी के मेमोरी कार्यान्वयन में आंशिक (प्रगतिशील) है, जिसे स्टैंड-अलोन सर्वर के रूप में चलाया जा सकता है।

अभी तक सभी कार्यक्षमता लागू नहीं की गई हैं।

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