2009-07-02 9 views
5

नोएसक्यूएल (http://nosql.eventbrite.com/) के बारे में पढ़ना, एक आंदोलन जिसका उद्देश्य कस्टम, अनुप्रयोग-अनुकूल स्टोरेज सिस्टम के पक्ष में पारंपरिक संबंधपरक डेटाबेस छोड़ने को प्रोत्साहित करना है।अपना खुद का स्टोरेज सिस्टम लिखना: कहां से शुरू करना है?

एक सीखने वाले पालतू परियोजना के रूप में एक छोटी व्यक्तिगत स्टोरेज सिस्टम (नेट फ्रेमवर्क के लिए) लिखने की कोशिश करने के विचार से चिंतित, आप सुझाव या उपयोगी लिंक क्या हैं? कहा से शुरुवात करे? हार्ड ड्राइव पर क्या है और स्मृति में क्या संतुलन है?

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

उत्तर

3

जाने से पहले मैं एसएमएल सर्वरों को एक्सएमएल फाइलों को संबंधपरक डेटाबेस के अंदर बीएलओबी ऑब्जेक्ट्स के रूप में स्टोर करने की क्षमता की सिफारिश करने की सिफारिश करता हूं। शायद आपके भंडारण तंत्र को "खरोंच से" होने की आवश्यकता नहीं है। यह एसक्यूएलएस एक्सएमएल स्टोरेज क्षमता के शीर्ष पर एक संकर हो सकता है।

2

वैसे यह सब आपके द्वारा बनाई जा रही ऐप पर निर्भर करता है।

उदाहरण के लिए, यदि आपके ऐप को केवल कुछ सौ वस्तुओं को जारी रखने और कुछ तरीकों से उनके माध्यम से कटौती करने की आवश्यकता है और कुछ समय में सामान भ्रष्ट हो जाता है तो परवाह नहीं है। आप शायद सूची में क्वेरी करने के लिए LINQ का उपयोग कर सकते हैं और थोड़ी देर में सूची में डिस्क को जारी रख सकते हैं।

यदि आपको किसी भी चीज की आवश्यकता है जिसमें जादू ACID गुण हैं, तो यह बहुत काम करने जा रहा है।

यदि आपको लेनदेन का समर्थन करने वाली किसी चीज़ की आवश्यकता है, तो यह बहुत काम करने जा रहा है।

यदि आपको एएनएसआई-एसक्यूएल को समझने वाली किसी चीज़ की आवश्यकता है, तो आपको एक पार्सर लिखना होगा, जो बहुत सारे काम है।

किसी भी प्रकार का डेटाबेस लिखने से पहले मुझे लगता है कि आपको बहुत सारे डेटाबेस सिद्धांत, get a book को समझना चाहिए, इसे पढ़ें।

+0

पहले तीन बहुत काम नहीं हैं। Prevayler देखें। –

3

नोएसक्यूएल आंदोलन का उद्देश्य विशाल पैमाने पर सिस्टम पर है, जहां आकारपरक मॉडल वास्तव में टूट जाता है। अपना खुद का भंडारण लिखना शुरू करने से पहले मैं अत्यधिक प्रासंगिक दस्तावेज को समझने की सलाह देता हूं, जैसा कि सीएस में सबसे अच्छे दस्तावेज और अच्छी तरह से समझने वाले डोमेन में से एक है। Gray's and Reuter's Transaction Processing से शुरू करें, यह पुस्तक सबकुछ बताती है क्लासिक RDBMS को लागू करने के बारे में जानना है। आपकी सूची के आगे Readings in Database Systems होना चाहिए, यह सबसे प्रासंगिक वैज्ञानिक कागजात और लेखों का संग्रह है।

1

प्रीवायलर लोगों द्वारा किए गए काम पर नज़र डालें। वे अवलोकन करते हैं कि यदि आप राम में डेटा फिट कर सकते हैं, तो अधिकांश उपयोग परिदृश्य के प्रदर्शन को बेहतर प्रदर्शन, और कोड के बहुत कम लेखन, आरडीबीएमएस के बिना। दूसरी तरफ, Google, अमेज़ॅन के लोग दिखाते हैं कि बड़ी मात्रा में डेटा के लिए आप आरडीबीएमएस का उपयोग नहीं करना चाहते हैं। चूंकि हम 64-बिट ओएस-एस और पीसी के बहुत सारे राम के साथ जा रहे हैं, आरडीबीएमएस एक चट्टान और एक कठिन जगह के बीच हैं।

1

हालांकि यह देर से प्रतिक्रिया है। ऐसा करने से पहले आपको कुछ बुनियादी परिदृश्यों को ध्यान में रखना आवश्यक है, भले ही आपको डीबीओ और उसके इंजन के काम करने में पूर्व ज्ञान हो। 1. क्या यह भारी भंडारण के लिए है? यदि ऐसा है, तो आपको पृष्ठों को ट्यून करने और फ़ाइल प्रारूप पर काम करने की आवश्यकता है जो लोड और पुनर्प्राप्त करने के लिए इतना अधिक समय लेता है।

  1. क्या इसे कई कनेक्शन संभालने की आवश्यकता है? फिर से पेज महत्वपूर्ण हैं, लेकिन आपको दृश्यों के पीछे काम करने के लिए एक सेवा या ऐप आधारित इंजन के लिए एक इंजन बनाने की आवश्यकता हो सकती है।

  2. क्या यह एप्लिकेशन उपयोग या वेब उपयोग के लिए है? यदि यह वेब के लिए है, तो वास्तव में MySQL या MSSQL का उपयोग करें।

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

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