2009-07-07 11 views
11

तो मैं अब लगभग 6 महीने (स्क्वाक और फारो) के लिए स्मॉलटाक का उपयोग कर रहा हूं, ज्यादातर डेटा एनालिटिक्स कर रहा हूं, और मैं अपना पहला समुद्रतट ऐप शुरू करने वाला हूं। तो आपके सभी छोटे-छोटे लोगों के लिए मेरा प्रश्न यह है कि, आपका पसंदीदा दृढ़ता समाधान क्या है? मैं मैग्मा, सामान, और ग्लोरप देख रहा हूं। मैं एक लंबे समय तक पाइथन हैकर हूं, इसलिए मुझे ओआरएम मिलता है, लेकिन ऐसा लगता है कि मैग्मा या सामान बेहतर समाधान होगा, क्योंकि वे ऑब्जेक्ट उन्मुख दिखते हैं।मैग्मा, सामान, ग्लोरप, या कुछ और?

एक त्वरित नोट: मैं अपने ऐप को एकाधिक वीएम में स्केल करना चाहता हूं, इसलिए छवि में डेटा को सहेजना वास्तव में काम नहीं करेगा।

धन्यवाद!

उत्तर

12

यदि आप एकाधिक वीएम में स्केल करना चाहते हैं, तो आप GemStone/S पर एक नज़र डालना चाहेंगे।

हालांकि, याद रखें कि जेमस्टोन proprietary, commercial product है। तो, आप इसके लिए भुगतान करना होगा। हालांकि, मूल्य निर्धारण मॉडल आम तौर पर इस तरह से डिज़ाइन किया गया है, कि यदि आप को एक बड़ा संस्करण की आवश्यकता है तो आपके पास आमतौर पर उपयोगकर्ताओं को उस संस्करण के लिए का भुगतान करना होगा। कीमतें 4 GiByte डिस्क/1 GiByte RAM/1 CPU संस्करण के लिए 0 $ पर शुरू होती हैं।

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

तो, जेमस्टोन क्या है? असल में, यह स्वत: ऑब्जेक्ट दृढ़ता के साथ एक वितरित वीएम है। सामान्य स्मॉलटॉक वीएम की तुलना में व्याख्या करना सबसे आसान है। यदि आपके पास दो छोटे-छोटे वीएम चल रहे हैं, तो उनमें से प्रत्येक की अपनी ऑब्जेक्ट मेमोरी है (यानी कचरा कलेक्टर प्रबंधन करता है)। और वह ऑब्जेक्ट मेमोरी रैम में है। जेमस्टोन में, क्लस्टर में सभी वीएम समान ऑब्जेक्ट मेमोरी और यह डिस्क पर रहता है, रैम में नहीं। तो, आप को डेटाबेस की आवश्यकता नहीं है, यहां तक ​​कि ऑब्जेक्ट-ओरिएंटेड एक भी नहीं, क्योंकि आपकी ऑब्जेक्ट्स हर जगह, "हर जगह" होती हैं।

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

रत्न भी डेटाबेस-ish सुविधाओं की है, इसलिए वैश्विक प्रतिनिधि के लिए उपयोग ository एसीआईडी ​​लेनदेन में लपेटा गया है, और एक एसक्यूएल-प्रेरित लेकिन छोटी-छोटी क्वेरी भाषा है।

जेमस्टोन का एक अच्छा उपकरण है कि वे "GLASS" (जेमस्टोन, लिनक्स, अपाचे, समुद्रतट और स्मॉलटाक के लिए) को जाने-माने "लैंप" (लिनक्स, अपाचे, माईएसक्यूएल और PHP) के समान कहते हैं। ग्लास में जेसस्टोन का मुफ्त संस्करण सीसाइड प्रीइंस्टॉल किया गया है और अपाचे के साथ सब कुछ सेटअप जुबंटू के शीर्ष पर चल रहा है, सब कुछ अच्छी तरह से एक वीएमवेयर डिस्क छवि में पैक किया गया है।

+0

मैं पूरी तरह से सहमत हूं, जेमस्टोन/एस जाने का रास्ता है। –

+0

दिलचस्प ... तो अगर मेरे पास 10 मिलियन ऑब्जेक्ट्स के साथ एक संग्रह था, तो * पूरे * संग्रह मेरी स्थानीय मेमोरी में होगा? - मैं सिर्फ यह पता लगाने की कोशिश कर रहा हूं कि मेरा डेटा कहां होगा। – KHWP

+0

पूरा संग्रह _local_ मेमोरी में नहीं होना चाहिए ... बड़ी वस्तुओं को आंतरिक रूप से btrees (मूल रूप से) का उपयोग करके कार्यान्वित किया जाता है ताकि आंशिक संग्रह स्थानीय मेमोरी में लोड किए जा सकें - आपका कामकाजी सेट स्थानीय मेमोरी में रखा जाता है और बाकी डिस्क –

1

यदि आप चुन सकते हैं, तो मैं ग्लास या मैग्मा भी चुनूंगा (यह इस बात पर निर्भर करता है कि परियोजना कितनी बड़ी है)।

ध्यान दें कि स्क्वाक में GLorp केवल PostgreSQL के साथ काम करता है। हमने स्क्वाकडीबीएक्स विकसित किया जो अधिकांश डेटाबेस के साथ संवाद करने के लिए डेटाबेस ड्राइवर है। अब हम ग्लॉर्प को संशोधित कर रहे हैं ताकि आप इसे सभी के साथ उपयोग कर सकें (न केवल PostgreSQL)। लेकिन यह इस साल के अंत तक नहीं होगा।

3

अकेला ग्लास वास्तव में आपको अपने डेटा पर एक सिंहावलोकन देने में मदद नहीं करता है। SandstoneDB करता है। आप सैंडस्टोन डीबी का उपयोग सामान और ग्लास, (या यहां तक ​​कि अकेले) दोनों के साथ कर सकते हैं, इस पर निर्भर करते हुए कि आप कितना पैसा खर्च करना चाहते हैं (सैंडस्टोन सभी इंद्रियों में मुफ़्त है, ग्लास वाणिज्यिक है, लेकिन छोटे इंस्टॉलेशन के लिए मुफ्त बियर में मुफ़्त है)।

the sandstoneDB page देखें। और यहां the adaptor for GOODS है। ग्लास के साथ SandstoneDB का उपयोग करने के लिए, बस स्टोर को SDMemoryStore पर स्विच करें, SandstoneDB में SDMemoryStore पर कक्षा टिप्पणियां देखें।

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