2008-11-04 19 views
34

मैं एक डीबीएम जैसी पुस्तकालय की तलाश में हूं जिसे मैं बर्कले डीबी के स्थान पर उपयोग कर सकता हूं, जिसका मैं वर्तमान में उपयोग कर रहा हूं। स्विचिंग का मेरा मुख्य कारण बीडीबी के लिए लाइसेंस शुल्क बहुत अधिक है (ओपन सोर्स ऐप के लिए मुफ्त है, लेकिन मेरा नियोक्ता विभिन्न कारणों से इस विशेष ऐप को स्रोत खोलना नहीं चाहता है)।बर्कलेडीबी के लिए वैकल्पिक?

मैंने क्यूडीबीएम पर संक्षेप में देखा है लेकिन ऐसा लगता है कि यह मेरी ज़रूरतों को पूरा नहीं करेगा - कई चाबियाँ (कई मिलियन) और बड़ी डेटा आइटम (> 1-5 मेगाबाइट्स)। मेरी खोज जारी रखने से पहले मैंने सोचा कि मैं पूछूंगा क्योंकि ऐसा लगता है कि वहाँ बहुत से डीबीएम जैसी पुस्तकालय हैं।

उत्तर

10

SQLite सार्वजनिक डोमेन है, जिसका अर्थ है कि आप इसे किसी भी उद्देश्य के लिए उपयोग कर सकते हैं, और व्यापक रूप से उपयोग और समर्थित है।

+1

अच्छा विचार है, लेकिन जाहिरा तौर पर SQLite बड़ी लिए अनुशंसित नहीं है के लिए बाध्यकारी डेटाबेस। हमारा लगभग 50 जीबी होगा; क्षमा करें, शायद मूल पोस्ट में स्पष्ट नहीं था। –

+1

दूसरा मुद्दा यह है कि बीडीबी एक एसक्यूएल डीबीएमएस नहीं है, यह एक स्टोरेज इंजन है। इसलिए जब तक कि उसने बीडीबी के शीर्ष पर एक एसक्यूएल कार्यान्वयन नहीं लिखा है, ऐसा लगता है कि दूसरे स्टोरेज इंजन की बजाय एसक्यूएल को बंदरगाह के लिए थोड़ा और काम होगा। – Ferruccio

+0

@ फेरूक्रसिओ, उसे एसक्यूएल पर पोर्ट करने की ज़रूरत नहीं है, वह बस एसक्यूएल के शीर्ष पर बीडीबी जैसी एपीआई लागू कर सकता है। आसानी से। –

0

db4o बहुत सस्ते और तेज है लेकिन यह केवल जावा या NET के साथ इस्तेमाल किया जा सकता

+0

db4o अच्छा लग रहा है लेकिन दुर्भाग्य से यह एक C++ ऐप है ... –

+1

db4o BerkeleyDB के लिए बिल्कुल अनुचित विकल्प है। इसके अलावा डीबी 4o रॉयल्टी मुक्त लाइसेंसिंग मॉडल की पेशकश नहीं करता है। वे प्रत्येक तैनाती के लिए चार्ज कर रहे हैं। –

+0

$ 1200 – KJW

0

Firebird अपने सबसे अच्छे दोस्त है।

+0

में बहुत सस्ते सस्ते फ़ायरबर्ड एक बहुत अच्छा ** एसक्यूएल ** डेटाबेस है।भंडारण डीबी के रूप में बहुत अच्छा नहीं है, लेकिन संभवतया बहुत अच्छे बीएलओबी समर्थन के कारण सबसे अधिक बेहतर है। –

+1

क्या आप 'भंडारण डीबी के रूप में महान नहीं' पर थोड़ा और विस्तार कर सकते हैं? इसके अलावा, मैं इस बारे में अधिक जानना चाहता हूं कि फायरबर्ड क्या अच्छा नहीं है (कीमत? आकार? :)) –

18

आप Tokyo Cabinet देख सकते हैं। यह qdbm/gdbm का उत्तराधिकारी है, और यदि आप स्केल करने का निर्णय लेते हैं तो एक अच्छा नेटवर्क फ्रंट-एंड उपलब्ध है।

संपादित करें:

एक और प्रकार Kyoto Cabinet है; एक ही व्यक्ति द्वारा विकसित, लेकिन उपयोग करने के लिए माना जाता है।

8

तुम बहुत किसी भी डी बी एम (यहां तक ​​कि qdbm) और अविवेक के एक साधारण स्तर के साथ सुधार समानांतरवाद से बाहर प्रदर्शन में सुधार कर सकते हैं: बस अपनी चाबी लेते हैं और उन्हें हैश, और data_dir/H(key)/ का उपयोग डेटाबेस के रूप में उन चाबियाँ स्टोर करने के लिए। सर्वोत्तम परिणामों के लिए हैश आउटपुट को एक छोटे से मूल्य (कहें) 255 तक सीमित करें।

यह दृष्टिकोण लाभ के एक नंबर है, आसानी से संक्षेप है: लागू करने के लिए

  • वैचारिक सरल
  • आसान और परीक्षण
  • बहुत बड़ा समर्थन कर सकते हैं अद्यतन के लिए पूरे डेटाबेस को लॉक नहीं करता डेटाबेस
  • डीबीएम घटक
को प्रतिस्थापित करने में आसान

हैश शायद क्रिप्टोग्राफिक रूप से सुरक्षित होने की आवश्यकता नहीं है; बस ज्यादातर वर्दी। डीजेबी का cdb hash ज्यादातर मामलों में अच्छी तरह से काम करता है।

+0

दिलचस्प सुझाव, लेकिन यह सवाल के लिए थोड़ा सा ऑर्थोगोनल है। एक हैश टेबल बनाम एक क्रमबद्ध btree- जैसी संरचना का उपयोग करने की योग्यता एक अलग विषय है। – gonzojive

3

आप JDBM को आजमा सकते हैं। यह एक डिस्क (अपाचे 2) कुंजी-वैल्यू स्टोर है जिसमें डिस्क दृढ़ता है। सरल API और उच्च प्रदर्शन

20

C/C++

  • http://sphia.org/ एक कुंजी/मान स्टोर, सी और में लिखा बीएसडी-लाइसेंस।
  • https://code.google.com/p/leveldb/ सी ++ में लिखा भी बीएसडी-लाइसेंस
  • http://luxio.sourceforge.net/ सी में लिखा ++, LGPL, तेजी से बर्कले DB
  • http://symas.com/mdb/ सी में लिखा, लाइसेंस है OpenLDAP पब्लिक लाइसेंस (BSD की तरह)
  • https://github.com/davidar/sdbm से सी, पब्लिक डोमेन, "ndbm"
  • http://repetae.net/computer/vsdb/ सी में लिखा, लाइसेंस अज्ञात के reimplementation, प्रायोगिक
  • https://github.com/stevedekorte/skipdb डब्ल्यू में लिखा सी, बीएसडी-लाइसेंसीकृत, कुंजी-मूल्य स्टोर, स्किप-लिस्ट इंडेक्स
  • http://unqlite.org/ सी/सी ++ में लिखे गए, एम्बेडेड नोएसQL डाटाबेस इंजन, बीएसडी-लाइसेंस प्राप्त, SQLite के समान।
  • http://hamsterdb.com/ सी/सी ++ में लिखित, एम्बेडेड नोएसQL डाटाबेस इंजन, अपाचे लाइसेंस 2.0।

जावा

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