BadgerDB: गो में फास्ट की-वैल्यू DB

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

BadgerDB: गो में फास्ट की-वैल्यू DB

बेजरडीबी

BadgerDB शुद्ध गो में लिखा गया एक एम्बेड करने योग्य, लगातार और तेज़ की-वैल्यू (KV) डेटाबेस है। यह Dgraph के लिए अंतर्निहित डेटाबेस है, एक तेज़, वितरित ग्राफ़ डेटाबेस। यह रॉक्सडीबी जैसे नॉन-गो-आधारित की-वैल्यू स्टोर्स के लिए एक प्रदर्शनकारी विकल्प है।

प्रयोग करना मुद्दों पर चर्चा करें इस भंडार के बारे में मुद्दों की रिपोर्ट करने के लिए।

परियोजना की स्थिति [24 मार्च, 2020]

बेजर स्थिर है और इसका उपयोग सैकड़ों टेराबाइट्स के डेटा सेटों की सेवा के लिए किया जा रहा है। बैजर समवर्ती एसीआईडी ​​​​लेनदेन का समर्थन करता है जिसमें क्रमबद्ध स्नैपशॉट अलगाव (एसएसआई) गारंटी होती है। जेपसेन-शैली का बैंक परीक्षण रात में 8 घंटे चलता है, |_+_| के साथ फ़्लैग करता है और लेन-देन की गारंटी का रखरखाव सुनिश्चित करता है. फाइलसिस्टम स्तर की विसंगतियों के साथ काम करने के लिए बेजर का भी परीक्षण किया गया है, ताकि दृढ़ता और स्थिरता सुनिश्चित की जा सके। बेजर का उपयोग कई परियोजनाओं द्वारा किया जा रहा है जिसमें Dgraph, Jaeger Tracing, UsenetExpress और कई अन्य शामिल हैं।



बेजर का उपयोग करने वाली परियोजनाओं की सूची मिल सकती है यहां .

बेजर v1.0 नवंबर 2017 में जारी किया गया था, और v1.0 के साथ डेटा-संगत नवीनतम संस्करण v1.6.0 है।

स्तंभ कैसे खरीदें

बेजर v2.0 नवंबर 2019 में एक नए स्टोरेज फॉर्मेट के साथ जारी किया गया था जो सभी v1.x के साथ संगत नहीं होगा। बेजर v2.0 संपीड़न, एन्क्रिप्शन का समर्थन करता है और लुकअप को गति देने के लिए कैश का उपयोग करता है।

चेंजलॉग को काफी अप-टू-डेट रखा गया है।

हमारे संस्करण नामकरण स्कीमा पर अधिक विवरण के लिए कृपया पढ़ें एक संस्करण चुनना .

htmlसंग्रह को सरणी में बदलें

शुरू करना

स्थापित कर रहा है

बेजर का उपयोग शुरू करने के लिए, गो 1.12 या इसके बाद के संस्करण को स्थापित करें। बेजर v2 को गो मॉड्यूल की जरूरत है। पुस्तकालय को पुनः प्राप्त करने के लिए निम्नलिखित कमांड चलाएँ।

|_+_|

यह पुस्तकालय को पुनः प्राप्त करेगा।

बेजर कमांड लाइन टूल इंस्टॉल करना

https://github.com/dgraph-io/badger/releases से नवीनतम बैजर DB रिलीज़ को डाउनलोड करें और निकालें और फिर निम्नलिखित कमांड चलाएँ।

|_+_|

यह आपके $GOBIN पथ में बेजर कमांड लाइन उपयोगिता स्थापित करेगा।

नोड जेएस कोणीयज ट्यूटोरियल

एक संस्करण चुनना

BadgerDB इस दृष्टिकोण से एक बहुत ही खास पैकेज है कि हम इसमें जो सबसे महत्वपूर्ण बदलाव कर सकते हैं, वह इसके एपीआई पर नहीं है, बल्कि डिस्क पर डेटा कैसे संग्रहीत किया जाता है।

यही कारण है कि हम एक संस्करण नामकरण स्कीमा का पालन करते हैं जो सिमेंटिक वर्जनिंग से भिन्न है।

  • डिस्क पर डेटा प्रारूप असंगत तरीके से बदलने पर नए प्रमुख संस्करण जारी किए जाते हैं।
  • जब भी एपीआई में बदलाव होता है तो नए छोटे संस्करण जारी किए जाते हैं लेकिन डेटा संगतता बनी रहती है। ध्यान दें कि एपीआई पर परिवर्तन पिछड़े-असंगत हो सकते हैं - सिमेंटिक वर्जनिंग के विपरीत।
  • डेटा प्रारूप और न ही एपीआई में कोई बदलाव नहीं होने पर नए पैच संस्करण जारी किए जाते हैं।

इन नियमों का पालन:

  • v1.5.0 और v1.6.0 बिना किसी चिंता के समान फ़ाइलों के शीर्ष पर उपयोग किए जा सकते हैं, क्योंकि उनका प्रमुख संस्करण समान है, इसलिए डिस्क पर डेटा प्रारूप संगत है।
  • v1.6.0 और v2.0.0 डेटा असंगत हैं जैसा कि उनके प्रमुख संस्करण का अर्थ है, इसलिए v1.6.0 के साथ बनाई गई फ़ाइलों को v2.0.0 द्वारा उपयोग किए जाने से पहले नए प्रारूप में परिवर्तित करने की आवश्यकता होगी।

नए वर्ज़निंग नेमिंग स्कीमा का उपयोग करने के पीछे के कारणों के बारे में लंबी व्याख्या के लिए, आप पढ़ सकते हैं वर्जनिंग.एमडी .

बेजर प्रलेखन

बेजर प्रलेखन https://dgraph.io/docs/badger पर उपलब्ध है

साधन

वेबदैनिकी डाक

  1. बेजर का परिचय: गो में मूल रूप से लिखा गया एक तेज़ की-वैल्यू स्टोर
  2. एलिस के साथ बेजर क्रैश को लचीला बनाएं
  3. बेजर बनाम एलएमडीबी बनाम बोल्टडीबी: गो में बेंचमार्किंग की-वैल्यू डेटाबेस
  4. बेजर में समवर्ती एसिड लेनदेन

डिज़ाइन

बैजर को इन डिज़ाइन लक्ष्यों को ध्यान में रखकर लिखा गया था:

क्रोम में बुकमार्क का आकार कैसे बदलें
  • प्योर गो में की-वैल्यू डेटाबेस लिखें।
  • टेराबाइट्स में फैले डेटा सेट के लिए सबसे तेज़ KV डेटाबेस बनाने के लिए नवीनतम शोध का उपयोग करें।
  • SSDs के लिए ऑप्टिमाइज़ करें।

बेजर का डिज़ाइन शीर्षक वाले पेपर पर आधारित है WiscKey: SSD-सचेत संग्रहण में कुंजियों को मानों से अलग करना .

तुलना

विशेषताबिज्जूरॉक्सडीबीबोल्टडीबी
डिज़ाइनमूल्य लॉग के साथ LSM ट्रीएलएसएम पेड़ केवलबी + पेड़
उच्च पढ़ें थ्रूपुटहाँनहींहाँ
उच्च लेखन थ्रूपुटहाँहाँनहीं
एसएसडी के लिए डिज़ाइन किया गयाहां (नवीनतम शोध 1 के साथ)विशेष रूप से नहीं 2नहीं
एम्बेड करने योग्यहाँहाँहाँ
सॉर्ट किए गए केवी एक्सेसहाँहाँहाँ
प्योर गो (सीजीओ नहीं)हाँनहींहाँ
लेनदेनहाँ, ACID, SSI3 के साथ समवर्तीहां (लेकिन गैर-एसिड)हाँ, एसिड
स्नैपशॉट्सहाँहाँहाँ
टीटीएल समर्थनहाँहाँनहीं
3डी एक्सेस (की-वैल्यू-वर्जन)हां4नहींनहीं

1 WISCKEY पेपर (जिस पर बेजर आधारित है) में कुंजियों से मूल्यों को अलग करने के साथ बड़ी जीत देखी गई, एक विशिष्ट एलएसएम ट्री की तुलना में लेखन प्रवर्धन को काफी कम कर दिया।

2 RocksDB LevelDB का SSD अनुकूलित संस्करण है, जिसे विशेष रूप से घूर्णन डिस्क के लिए डिज़ाइन किया गया था। इसलिए RocksDB का डिज़ाइन SSDs के लिए लक्षित नहीं है।

3 एसएसआई: सीरियल करने योग्य स्नैपशॉट अलगाव। अधिक विवरण के लिए, बेजर में ब्लॉग पोस्ट समवर्ती एसीआईडी ​​लेनदेन देखें

4 बेजर अपने इटरेटर एपीआई के माध्यम से मूल्य संस्करणों तक सीधी पहुंच प्रदान करता है। उपयोगकर्ता विकल्प के माध्यम से यह भी निर्दिष्ट कर सकते हैं कि प्रति कुंजी कितने संस्करण रखना है।

मानक

हमने RocksDB, Bolt और LMDB के विरुद्ध व्यापक बेंचमार्क चलाए हैं। बेंचमार्किंग कोड और बेंचमार्क के लिए विस्तृत लॉग बेजर-बेंच रेपो में पाए जा सकते हैं। ग्राफ़ समेत अधिक स्पष्टीकरण ब्लॉग पोस्ट (ऊपर लिंक) पाया जा सकता है।

सरल विश्व मानचित्र svg

बेजर का उपयोग करने वाली परियोजनाएँ

बेजर का उपयोग करने वाली ज्ञात परियोजनाओं की सूची नीचे दी गई है:

  • डीग्राफ - वितरित ग्राफ डेटाबेस।
  • जैगर - वितरित अनुरेखण मंच।
  • go-ipfs - इंटरप्लेनेटरी फाइल सिस्टम (IPFS) के लिए क्लाइंट बनें, एक नया हाइपरमीडिया डिस्ट्रीब्यूशन प्रोटोकॉल।
  • दंगा - एक खुला-स्रोत, वितरित खोज इंजन।
  • एमिटर - स्केलेबल, कम विलंबता, संदेश भंडारण के साथ वितरित पब/सब ब्रोकर, एमक्यूटीटी, गॉसिप और बैजर का उपयोग करता है।
  • OctoSQL - क्वेरी टूल जो आपको SQL का उपयोग करके कई डेटाबेस से डेटा में शामिल होने, विश्लेषण करने और बदलने की अनुमति देता है।
  • Dkron - वितरित, दोष सहिष्णु कार्य शेड्यूलिंग सिस्टम।
  • स्मॉलस्टेप/सर्टिफिकेट - स्टेप-सीए सुरक्षित, स्वचालित प्रमाणपत्र प्रबंधन के लिए एक ऑनलाइन प्रमाणपत्र प्राधिकरण है।
  • सैंडग्लास - वितरित, क्षैतिज रूप से स्केलेबल, लगातार, समय क्रमबद्ध संदेश कतार।
  • TalariaDB - ग्रैब का वितरित, कम विलंबता समय-श्रृंखला डेटाबेस।
  • स्लोप - सेल्सफोर्स का कुबेरनेट्स हिस्ट्री विजुअलाइजेशन प्रोजेक्ट।
  • Immudb - सिस्टम और एप्लिकेशन के लिए लाइटवेट, हाई-स्पीड अपरिवर्तनीय डेटाबेस।
  • यूज़नेट एक्सप्रेस - बेजर के साथ 300TB से अधिक डेटा की सेवा।
  • गोरश - गो में लिखा एक पुश नोटिफिकेशन सर्वर।
  • 0-स्टोर - सिंगल डिवाइस ऑब्जेक्ट स्टोर।
  • डिस्पैच प्रोटोकॉल - वितरित एप्लिकेशन डेटा एनालिटिक्स के लिए ब्लॉकचेन प्रोटोकॉल।
  • GarageMQ - AMQP सर्वर गो में लिखा गया है।
  • RedixDB - एक ही रेडिस प्रोटोकॉल के साथ एक वास्तविक समय लगातार की-वैल्यू स्टोर।
  • BBVA - हाशिकॉर्प बेड़ा के लिए बेजरडीबी का उपयोग करते हुए बेड़ा बैकएंड कार्यान्वयन।
  • Fantom - वितरित अनुप्रयोगों के लिए aBFT आम सहमति मंच।
  • डिक्रेड - एक खुला, प्रगतिशील और स्व-वित्तपोषित क्रिप्टोकरंसी जिसके साथ समुदाय-आधारित प्रशासन की एक प्रणाली इसके ब्लॉकचेन में एकीकृत है।
  • OpenNetSys - किसी भी सॉफ्टवेयर भाषा में उपयोगी dApps बनाएँ।
  • हनीट्रैप - हनीपोट्स को चलाने, निगरानी करने और प्रबंधित करने के लिए एक एक्स्टेंसिबल और ओपनसोर्स सिस्टम।
  • इनसोलर - उद्यम-तैयार ब्लॉकचैन प्लेटफॉर्म।
  • IoTeX - स्केलेबिलिटी- और गोपनीयता-केंद्रित ब्लॉकचेन द्वारा संचालित IoT के लिए विकेंद्रीकृत नेटवर्क की अगली पीढ़ी।
  • go-sessions - Go net/http और fasthttp के लिए सत्र प्रबंधक।
  • बेबल - वितरित अनुप्रयोगों के लिए बीएफटी आम सहमति मंच।
  • टोरेंटा - गो प्रोजेक्ट्स के लिए एंबेडेड ऑब्जेक्ट-पर्सिस्टेंस लेयर / सिंपल JSON डेटाबेस।
  • बेजरहोल्ड - बेजर पर निर्मित गो प्रकारों की क्वेरी के लिए एक एम्बेड करने योग्य NoSQL स्टोर
  • गोबलेरो - बेजरडीबी द्वारा समर्थित शुद्ध गो एम्बेडेड लगातार नौकरी कतार
  • सर्फ़लाइन - बेजर के साथ वैश्विक लहर और मौसम पूर्वानुमान डेटा की सेवा।
  • Cete - बेजर पर निर्मित सरल और अत्यधिक उपलब्ध वितरित की-वैल्यू स्टोर। हैशिकॉर्प/बेड़ा द्वारा बेड़ा आम सहमति एल्गोरिथ्म के साथ बेजर के एक समूह को लाना आसान बनाता है।
  • वॉल्यूमेंट - बेजर द्वारा समर्थित वेबसाइट एनालिटिक्स पर एक नया कदम।
  • KVdb - बेजर के शीर्ष पर निर्मित की-वैल्यू स्टोर और सर्वर रहित प्लेटफॉर्म की मेजबानी की।
  • टर्मिनोट्स - सेल्फ होस्टेड नोट्स स्टोरेज और सर्च सर्वर - बैजरडीबी द्वारा संचालित स्टोरेज
  • पाइरोस्कोप - बेजरडीबी के साथ निर्मित ओपन सोर्स कॉन्टिन्यूअस प्रोफाइलिंग प्लेटफॉर्म
  • वेरी - खोज और अनुशंसा कार्यों के लिए अनुकूलित एक वितरित फीचर स्टोर।
  • bIter - |_+_| के साथ काम करने के लिए एक लाइब्रेरी और इटरेटर इंटरफेस, फ्रॉम-टू और प्रीफिक्स मैकेनिक्स को सरल बनाना।
  • एलडी - (लीन डेटाबेस) एक बहुत ही सरल जीआरपीसी-ओनली की-वैल्यू डेटाबेस, की-रेंज स्कैनिंग शब्दार्थ के साथ बेजरडीबी को उजागर करता है।
  • सॉइन - भंडारण के लिए बेजर पर आधारित बहुत सी अन्य सुविधाओं के साथ एक RFC अनुरूप HTTP कैश। सभी मौजूदा रिवर्स-प्रॉक्सी के साथ संगत।
  • Xuperchain - बेहतरीन लेन-देन प्रदर्शन के साथ एक अत्यधिक लचीली ब्लॉकचेन संरचना।
  • m2 - बेड़ा प्रोटोकॉल पर आधारित एक साधारण http कुंजी/मान संग्रह।
  • चैंडब - पोलकडॉट नेटवर्क के लिए एक गो क्लाइंट, गोसामर द्वारा उपयोग की जाने वाली ब्लॉकचेन स्टोरेज परत।
  • vxdb - सरल स्कीमा-रहित की-वैल्यू NoSQL डेटाबेस सरलतम API इंटरफ़ेस के साथ।
  • अपारदर्शिता - अपारदर्शिता भंडारण परियोजना के लिए बैकएंड कार्यान्वयन
  • वेफर - डेटा भंडारण के लिए क्लस्टर समन्वय और बैजर के लिए हैशिकॉर्प-राफ्ट का उपयोग करके एक न्यूनतम कुंजी/मूल्य स्टोर।

यदि आप किसी प्रोजेक्ट में बेजर का उपयोग कर रहे हैं तो कृपया इसे सूची में जोड़ने के लिए एक पुल अनुरोध भेजें।

योगदान

यदि आप बेजर में योगदान करने में रुचि रखते हैं तो CONTRIBUTING.md देखें।

विवरण डाउनलोड करें:
लेखक: डीग्राफ-आईओ
स्रोत कोड: https://github.com/dgraph-io/badger
लाइसेंस: अपाचे-2.0 लाइसेंस

#डेटाबेस #बढ़ रहा है

यह सभी देखें: