अमेज़ॅन डायनेमोडीबी

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

इसके पश्चात् भी तीसरे पक्ष के संबंधित डेटाबेस प्रबंधन सिस्टम को अमेज़ॅन के ग्राहक मूल को नियंत्रण के लिए संघर्ष करना पड़ा है।

पृष्ठभूमि
अमेज़न डॉट कॉम के सीटीओ वर्नर वोगल्स ने 2012 की घोषणा में इस परियोजना के लिए प्रेरणा प्रदान की है। अमेज़ॅन का प्रारंभ सेवाओं के विकेन्द्रीकृत नेटवर्क के रूप में हुई थी। मूल रूप से, सेवाओं की एक-दूसरे के डेटाबेस तक प्रत्यक्ष रूप से निकटता थी। जब यह इंजीनियरिंग संचालन पर एक बाधा बन गया तो सेवाएं सार्वजनिक-प्रतिक्रिया वाले एपीआई के पक्ष में इस प्रत्यक्ष रूप से निकटता स्वरूप से दूरस्थ हो गईं है। इसके पश्चात् भी तीसरे पक्ष के संबंधित डेटाबेस प्रबंधन सिस्टम को अमेज़ॅन के ग्राहक मूल को नियंत्रण के लिए संघर्ष करना पड़ा है। इसकी पराकाष्ठा 2004 के छुट्टियों के समय हुई, जब उच्च यातायात के कारण अनेक प्रौद्योगिकियाँ विफल हो गईं थी।

डेटा अतिरेक को अल्प करने के लिए इंजीनियर संबंधपरक में सिस्टम को सामान्य कर रहे थे, जो रचना जो स्टोरेज के लिए अनुकूलित है। परित्याग के रूप में उन्होंने डेटा के एक दिए गए "मद" (उदाप्रत्येकण के लिए, उत्पाद डेटाबेस में किसी उत्पाद से संबंधित जानकारी) को अनेक संबंधों में संग्रहीत किया और एक प्रश्न के लिए असंयुक्त भागों को एकत्रित करने में समय लगता है। अमेज़ॅन की अनेक सेवाओं ने अपने डेटा पर अधिकतर प्राथमिक-समाधान अध्ययन की अनुरोध की, और गति को सर्वोच्च प्राथमिकता के साथ, इन भागो एकत्रित रखना अत्यधिक कठिन था।

स्टोरेज दक्षता से अनुबंध करने वाली सामग्री, अमेज़ॅन की प्रतिक्रिया डायनमो (स्टोरेज प्रणाली) थी, आंतरिक उपयोग के लिए बनाया गया एक अत्यधिक उपलब्ध समाधान-मान भण्डार है। ऐसा लगता था कि डायनमो में वह सब कुछ था जिसकी उनके इंजीनियरों को आवश्यकता थी, किन्तु इसे अपनाने में विलम्ब हुआ है। अमेज़ॅन के विकासक ने एस3 और सामान्तः डीबी के साथ "उचित कार्य" रचना स्वरूप को चयनित करा है। चूंकि इन प्रणालियों में ध्यान देने योग्य रचना कमजोरियों थीं, किन्तु उन्होंने हार्डवेयर प्रावधान और प्रवर्धन और डेटा को पुनः से विभाजित करने के अतिरिक्त की अनुरोध नहीं किया है। अमेज़ॅन की एनओएसक्यूएल विधि का आगामी संस्करण, डाइनेमो डी बी, इन डेटाबेस प्रबंधन कार्यों को स्वचालित करता है।

अवलोकन
डाइनेमो डी बी में, डेटा को तालिकाओं में मद के रूप में संग्रहीत किया जाता है, और सूचकांकों का उपयोग करके विवरण प्राप्त किया जा सकता है। मद में अनेक विशेषताएँ सम्मिलित होती हैं जो अनेक डेटा प्रकारों से संबंधित हो सकती हैं, और एक समाधान की आवश्यकता होती है जो तालिका में अद्वितीय होने की अपेक्षा है।

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

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

किसी मद को उसकी विशेषताओं के उप-समूह जिसे समाधान कहा जाता है, का उपयोग करके तालिका में विशिष्ट रूप से निर्धारित करा जाता है।

डाइनेमो डी बी समाधान
प्राथमिक समाधान विशेषताओं का एक समूह है जो डायनेमो डीबी तालिका में विशिष्ट रूप से मद की अभिज्ञान करती है। डाइनेमो डी बी तालिका के निर्माण के लिए प्राथमिक समाधान की परिभाषा की आवश्यकता थी। डायनेमो डीबी तालिका में प्रत्येक मद में प्राथमिक समाधान बनाने वाली सभी विशेषताओं का होना आवश्यक है, और तालिका में किसी भी दो मद में एक ही समाधान नहीं हो सकती है। डायनमो डीबी में प्राथमिक समाधान में एक या दो विशेषताएँ सम्मिलित हो सकती हैं।

जब प्राथमिक समाधान मात्र एक विशेषता से बनी होती है, तब इसे विभाजन समाधान कहा जाता है। विभाजन समाधान डेटा मद का भौतिक स्थान नियुक्त करती है। इस स्थिति में, तालिका में किसी भी दो मद में समान विभाजन समाधान नहीं हो सकती हैं।

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

डायनेमो डीबी डेटा प्रकार
डाइनेमो डी बी संख्यात्मक, श्रृंखला, बूलियन, प्रपत्र और समूह डेटा प्रकारों का समर्थन करता है।

डायनेमो डीबी सूचकांक
किसी तालिका की प्राथमिक समाधान डाइनेमो डी बी तालिका का अभाव या प्राथमिक सूचकांक है।

इसके अतिरिक्त, डाइनेमो डी बी तालिका में द्वितीयक सूचकांक हो सकते हैं। एक द्वितीयक सूचकांक को एक विशेषता पर परिभाषित किया जाता है जो प्राथमिक सूचकांक के रूप में विभाजन समाधान या संक्षेप समाधान से भिन्न होता है।

जब एक द्वितीयक सूचकांक में प्राथमिक सूचकांक के समान विभाजन समाधान होती है किन्तु एक प्रथक संक्षेप समाधान होती है, तब इसे स्थानीय माध्यमिक सूचकांक कहा जाता है।

जब प्राथमिक सूचकांक और माध्यमिक सूचकांक में प्रथक -प्रथक विभाजन समाधान होती है, तब माध्यमिक सूचकांक को वैश्विक माध्यमिक सूचकांक के रूप में जाना जाता है।

वाक्य - विन्यास
डाइनेमो डी बी अपनी सर्वव्यापकता के कारण अपने वाक्य - विन्यास के लिए जेएसओएन का उपयोग करता है। सूची निर्मित क्रिया मात्र तीन तर्कों की अनुरोध करती है: सूची नाम, समाधान योजना--एक सूची जिसमें एक विभाजन समाधान और एक वैकल्पिक संक्षेप समाधान होती है। और विशेषता परिभाषाएँ--परिभाषित की जाने वाली विशेषताओं की एक सूची जिसमें अल्प से अल्प उपयोग की जाने वाली विशेषताओं के लिए परिभाषाएं होनी चाहिए एवं विभाजन और संक्षेप समाधान है। जबकि सम्बंधित डेटाबेस शक्तिशाली प्रश्नचिहन भाषाएँ प्रदान करते हैं, डाइनेमो डी बी मात्र स्थापित, मार्ग , अद्यतन और विलोपन संचालन प्रदान करता है। स्थापित अनुरोधों में सूची नाम विशेषता और एक मद विशेषता सम्मिलित होती है, जिसमें मद की सभी विशेषताएँ और मान सम्मिलित होते हैं। अद्यतन अनुरोध समान वाक्य - विन्यास का अनुसरण करता है। इसी प्रकार, किसी मद को प्राप्त करने या प्रथक करने के लिए, मात्र एक सूची नाम और समाधान निर्दिष्ट करना है।

डेटा संरचनाएं
डेटा प्रबंधित करने के लिए डाइनेमो डी बी हैश फंकशन और बी-ट्री का उपयोग करता है। प्रविष्टि पर डेटा को सर्व-प्रथम विभाजन कुंजी पर हैशिंग के माध्यम से विभिन्न विभाजनों में वितरित किया जाता है। प्रत्येक विभाजन 10 जीबी तक डेटा संग्रहीत कर सकता है और अभाव रूप से 1,000 लेखन क्षमता इकाइयों (डब्ल्यूसीयू) और 3,000 अध्ययन की क्षमता इकाइयों (आरसीयू) को नियंत्रण कर सकता है। एक आरसीयू आकार में 4 केबी तक की विषयों के लिए प्रति सेकंड अध्ययन वाली एक अंतिम स्थिरता या प्रति सेकंड दो अंततः स्थिरता अध्ययन का प्रतिनिधित्व करता है। एक डब्लू सी यू 1के बी  आकार तक के मद के लिए प्रति सेकंड एक लेखन का प्रतिनिधित्व करता है।

डेटा हानि को रोकने के लिए, डाइनेमो डी बी में प्रतिकृति और दीर्घकालिक स्टोरेज की दो-स्तरीय बैकअप प्रणाली है। प्रत्येक विभाजन में तीन बिंदु होते हैं, जिनमें से प्रत्येक में उस विभाजन के डेटा की एक प्रति होती है। प्रत्येक बिंदु में दो डेटा संरचनाएं भी होती हैं: एक बी ट्री जिसका उपयोग विषयों का पता लगाने के लिए किया जाता है, और एक प्रतिकृति लॉग जो बिंदु में किए गए सभी परिवर्तनों को टिप्पणियाँ करता है। डाइनेमो डी बी समय-समय पर इन दो डेटा संरचनाओं का अनौपचारिक चित्र  लेता है और उन्हें अमेज़न एस3 में एक महीने के लिए संग्रहीत करता है जिससे इंजीनियर अपने डेटाबेस की समय में इंगित पुनर्स्थापना कर सकते है।

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

विभाजन और बिंदु् के प्रावधान और प्रबंधन जैसे इंजीनियरिंग उपरिव्यय के कारण अमेज़ॅन इंजीनियरों ने मूल रूप से डायनमो से परिवर्जन किया। उत्तर में, डाइनेमो डी बी समूह  ने डेटाबेस को प्रबंधित करने के लिए एक सेवा बनाई जिसे वह ऑटो एडमिन कहती है। जब कोई बिंदु प्रतिक्रिया देना संवृत कर देता है तब ऑटो एडमिन उसे दूसरे बिंदु से डेटा प्रतिलिपि करके परिवर्तित  देता है। जब कोई विभाजन अपनी तीन सीमाओं (आर सी यू, डब्लू सी यू, या 10 जी बी) में से किसी एक से अधिक हो जाता है, तब ऑटो एडमिन डेटा को और अधिक खंडित करने के लिए स्वचालित रूप से अतिरिक्त विभाजन जोड़ देता है।

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

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

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

अब मान लीजिए कि एक डाइनेमो डी बी उपयोगकर्ता एक मार्ग संचालन निर्गत  करता है। अनुरोध  अनुमार्गक  प्रमाणीकरण और प्राधिकरण के साथ पूर्व  की तरह कार्य करता    है। इसके पश्चात्, जैसा कि ऊपर बताया गया है, उचित हैश में प्रवेश के लिए हमारे पास अपनी विभाजन समाधान हैश है। अब, हमें एक समस्या का प्रतिक्रिया करना पड़ता है: तीन बिंदु अंततः एक-दूसरे के साथ संगति में हैं, हम कैसे नियुक्त कर सकते हैं कि किसकी जांच करनी है? व्याख्या निर्गत करते समय डाइनेमो डी बी उपयोगकर्ता को दो विकल्प सुसंगत और अंततः सुसंगत प्रदान करता है। निरंतर  अध्यन करा गया मुख्य  बिंदु पर जाता है। किन्तु स्थिरता-उपलब्धता व्यापार-संवृत यहां पुनः से   उत्थापन करते है: व्याख्या-भारयुक्त सिस्टम में, सदैव मुख्य बिंदु   से अध्ययन से एकल बिंदु प्रभावित हो सकती है और उपलब्धता अल्प हो सकती है।

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

प्रदर्शन
डाइनेमो डी बी प्रदर्शन मेट्रिक्स को उजागर करता है जो उपयोगकर्ताओं को इसे सही ढंग से व्यवस्थित करने में सहायता करता है और डाइनेमो डी बी का उपयोग करने वाले अनुप्रयोगों को सुचारू रूप से चालू रखता है: इन मेट्रिक्स को अमेज़ॅन वेब सेवाएं मैनेजमेंट कंसोल का उपयोग करके, एडब्ल्यूएस अल्प ांड लाइन इंटरफेस का उपयोग करके, या अमेज़ॅन क्लाउडवॉच के साथ एकीकृत एक निगरानी उपकरण का उपयोग करके ट्रैक किया जा सकता है।
 * अनुरोध और गला घोंटना
 * त्रुटियां: ProvisionedThoughtputExceededException, सशर्त जांच विफल अपवाद, आंतरिक सर्वर त्रुटि (एचटीटीपी 500)
 * ग्लोबल सेकेंडरी इंडेक्स निर्माण से संबंधित मेट्रिक्स

भाषा अनिवार्य
डायनेमो डीबी भाषा अनिवार्य वाली भाषाओं और फ्रेमवर्क में जावा (कार्यक्रम निर्माण भाषा), जावास्क्रिप्ट, बिंदु.जेएस, गो (कार्यक्रम निर्माण भाषा), सी शार्प (कार्यक्रम निर्माण भाषा)|सी# .NET फ्रेमवर्क|.नेट, पर्ल, पीएचपी, पायथन (कार्यक्रम निर्माण भाषा) सम्मिलित हैं। ), रूबी (कार्यक्रम निर्माण भाषा), रस्ट (कार्यक्रम निर्माण भाषा), हास्केल (कार्यक्रम निर्माण भाषा), एरलांग (कार्यक्रम निर्माण भाषा), डीजेंगो (वेब ​​फ्रेमवर्क), और ग्रेल्स (ढांचा) ।

एचटीटीपी एपीआई
एचटीटीपी एपीआई के विरुद्ध, प्रश्नचिहन मद: नमूना प्रतिक्रिया:

पदच्युत
पदच्युत में मद प्राप्त करें (कार्यक्रम निर्माण भाषा): पदच्युत में निष्कासित मद (कार्यक्रम निर्माण भाषा): अभिव्यक्ति निर्माता का उपयोग करके पदच्युत में अद्यतन मद

-

यह भी देखें

 * अमेज़न अरोरा
 * अमेज़ॅन प्रपत्र डीबी
 * अमेज़ॅन लाल चक्र
 * अमेज़ॅन सम्बंधित डेटाबेस सेवा
 * संबंधपरक डेटाबेस प्रबंधन प्रणालियों की तुलना

बाप्रत्येकी संबंध

 * Video: AWS re:Invent 2019: [REPEAT 1 अमेज़न डाइनेमो डी बी deep dive: Advanced design patterns (DAT403-R1) ]
 * Video: AWS re:Invent 2019: [REPEAT 1 अमेज़न डाइनेमो डी बी deep dive: Advanced design patterns (DAT403-R1) ]