अमेज़ॅन डायनेमोडीबी: Difference between revisions
No edit summary |
No edit summary |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 16: | Line 16: | ||
}} | }} | ||
अमेज़न | '''अमेज़न डाइनेमोडीबी''' संपूर्ण रूप से प्रबंधित स्वामित्व वाला [[NoSQL|एनओएसक्यूएल]] [[डेटाबेस]] है जो अमेज़न डॉट कॉम के माध्यम से अमेज़न वेब सेवाएं विभाग के भाग के रूप में प्रस्तुत किया गया है।<ref name="ZDNet 2012-01-19">{{cite web |last=Clark |first=Jack |date=2012-01-19 |title=अमेज़न DynamoDB क्लाउड डेटाबेस सेवा पर स्विच करता है|url=http://www.zdnet.co.uk/news/cloud/2012/01/19/amazon-switches-on-dynamodb-cloud-database-service-40094849/ |access-date=2012-01-21 |website=ZDNet}}</ref><ref>{{Cite web |title=Fast NoSQL Key-Value Database – Amazon DynamoDB – Amazon Web Services |url=https://aws.amazon.com/dynamodb/ |access-date=2023-05-28 |website=Amazon Web Services, Inc. |language=en-US}}</ref> डाइनेमो डी बी [[प्रतिकृति (कंप्यूटिंग)]], [[ऑटोस्केलिंग|स्वत: प्रवर्धन]], एन्क्रिप्शन स्थिरता और अन्य सुविधाओं के मध्य आवश्यकता होना, बैकअप के लिए अंतर्निहित समर्थन के साथ तीव्र [[सतत डेटा संरचना]] [[कुंजी-मूल्य डेटा संग्रह|समाधान-मान डेटा संग्रह]] प्रदान करता है।<ref>{{Cite web |title=Amazon DynamoDB Features {{!}} NoSQL Key-Value Database {{!}} Amazon Web Services |url=https://aws.amazon.com/dynamodb/features/ |access-date=2023-05-28 |website=Amazon Web Services, Inc. |language=en-US}}</ref><ref>{{Cite web |title=What is Amazon DynamoDB? - Amazon DynamoDB |url=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html |access-date=2023-05-28 |website=docs.aws.amazon.com}}</ref> | ||
==पृष्ठभूमि== | ==पृष्ठभूमि== | ||
अमेज़न डॉट कॉम के सीटीओ [[वर्नर पक्षी|वर्नर वोगल्स]] ने 2012 की घोषणा में इस परियोजना के लिए प्रेरणा प्रदान की है।<ref name="Vogels 2012-01-18">{{cite web |last=Vogels |first=Werner |date=2012-01-18 |title=Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications |url=http://www.allthingsdistributed.com/2012/01/amazon-dynamodb.html |access-date=2012-01-21 |work=All Things Distributed blog}}</ref> अमेज़ॅन का प्रारंभ सेवाओं के विकेन्द्रीकृत नेटवर्क के रूप में | अमेज़न डॉट कॉम के सीटीओ [[वर्नर पक्षी|वर्नर वोगल्स]] ने 2012 की घोषणा में इस परियोजना के लिए प्रेरणा प्रदान की है।<ref name="Vogels 2012-01-18">{{cite web |last=Vogels |first=Werner |date=2012-01-18 |title=Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications |url=http://www.allthingsdistributed.com/2012/01/amazon-dynamodb.html |access-date=2012-01-21 |work=All Things Distributed blog}}</ref> अमेज़ॅन का प्रारंभ सेवाओं के विकेन्द्रीकृत नेटवर्क के रूप में हुआ था। मूल रूप से सेवाओं का एक-दूसरे के डेटाबेस तक प्रत्यक्ष रूप से निकटता थी। जब यह इंजीनियरिंग संचालन पर एक बाधा बन गया तो सेवाएं सार्वजनिक-प्रतिक्रिया वाले [[अप्लिकेशन प्रोग्रामिंग अंतरफलक|एपीआई]] के पक्ष में इस प्रत्यक्ष रूप से निकटता स्वरूप से दूरस्थ हो गईं है। इसके पश्चात् भी तीसरे पक्ष के [[ संबंध का डेटाबेस |संबंधित डेटाबेस]] प्रबंधन सिस्टम को अमेज़ॅन के ग्राहक मूल को नियंत्रण के लिए संघर्ष करना पड़ा है। इसकी पराकाष्ठा 2004 के छुट्टियों के समय हुई, जब उच्च यातायात के कारण अनेक प्रौद्योगिकियाँ विफल हो गईं थी। | ||
डेटा अतिरेक को अल्प करने के लिए इंजीनियर संबंधपरक में सिस्टम को सामान्य कर रहे थे, जो रचना जो स्टोरेज के लिए अनुकूलित है। परित्याग के रूप में उन्होंने डेटा के दिए गए "मद" (उदाहरण के रूप मे उत्पाद डेटाबेस में किसी उत्पाद से संबंधित जानकारी) को अनेक संबंधों में संग्रहीत किया और प्रश्न के लिए असंयुक्त भागों को एकत्रित करने में समय लगता है। अमेज़ॅन की अनेक सेवाओं ने अपने डेटा पर अधिकतर प्राथमिक-समाधान अध्ययन की अनुरोध की, और गति को सर्वोच्च प्राथमिकता के साथ इन भागो एकत्रित रखना अत्यधिक कठिन था।<ref name=":1">{{Cite journal|last1=DeCandia|first1=Giuseppe|last2=Hastorun|first2=Deniz|last3=Jampani|first3=Madan|last4=Kakulapati|first4=Gunavardhan|last5=Lakshman|first5=Avinash|last6=Pilchin|first6=Alex|last7=Sivasubramanian|first7=Swaminathan|last8=Vosshall|first8=Peter|last9=Vogels|first9=Werner|date=October 2007|title=Dynamo: Amazon's Highly Available Key–value Store|journal=SIGOPS Oper. Syst. Rev.|volume=41|issue=6|pages=205–220|doi=10.1145/1323293.1294281|issn=0163-5980}}</ref> | |||
स्टोरेज दक्षता से अनुबंध करने वाली सामग्री, अमेज़ॅन की प्रतिक्रिया डायनमो (स्टोरेज सिस्टम) थी, यह आंतरिक उपयोग के लिए बनाया गया अत्यधिक उपलब्ध समाधान-मान स्टोरेज है।<ref name="Vogels 2012-01-18" /> ऐसा लगता था कि डायनमो में वह सब कुछ था जिसकी उनके इंजीनियरों को आवश्यकता थी, किन्तु इसे अपनाने में विलम्ब हुआ है। अमेज़ॅन के विकासक ने एस3 और सामान्तः डीबी के साथ [[अमेज़न हो सकता है|"उचित कार्य"]] रचना स्वरूप को चयनित किया है। चूंकि इन प्रणालियों में ध्यान देने योग्य रचना कमजोरियों थीं, किन्तु उन्होंने हार्डवेयर प्रावधान और प्रवर्धन और डेटा को पुनः से विभाजित करने के अतिरिक्त की अनुरोध नहीं किया है। अमेज़ॅन की एनओएसक्यूएल विधि का आगामी संस्करण, डाइनेमो डी बी, इन डेटाबेस प्रबंधन कार्यों को स्वचालित करता है। | |||
==अवलोकन== | ==अवलोकन== | ||
[[File:Dynamodb-aws-console.png|alt=Web console|thumb|वेब सकर्मक क्रिया]]डाइनेमो डी बी में, डेटा को तालिकाओं में मद के रूप में संग्रहीत किया जाता है, और सूचकांकों का उपयोग करके विवरण प्राप्त किया जा सकता है। मद में अनेक विशेषताएँ सम्मिलित होती हैं जो अनेक डेटा प्रकारों से संबंधित हो सकती हैं, और | [[File:Dynamodb-aws-console.png|alt=Web console|thumb|वेब सकर्मक क्रिया]]डाइनेमो डी बी में, डेटा को तालिकाओं में मद के रूप में संग्रहीत किया जाता है, और सूचकांकों का उपयोग करके विवरण प्राप्त किया जा सकता है। मद में अनेक विशेषताएँ सम्मिलित होती हैं जो अनेक डेटा प्रकारों से संबंधित हो सकती हैं, और समाधान की आवश्यकता होती है जो तालिका में अद्वितीय होने की अपेक्षा है। | ||
=== डायनेमो डीबी सूची === | === डायनेमो डीबी सूची === | ||
डाइनेमो डी बी तालिका विषयों का | डाइनेमो डी बी तालिका विषयों का तार्किक समूह है, जो इस तालिका में संग्रहीत डेटा का प्रतिनिधित्व करती है। डाइनेमो डी बी की एनओएसक्यूएल प्रकृति को अवलोकन करते हुए, तालिकाओं के लिए यह आवश्यक नहीं है, कि तालिका के सभी मद किसी पूर्व निर्धारित योजना के अनुरूप होता है।<ref name=":4">{{Cite web |title=Amazon DynamoDB के मुख्य घटक - Amazon DynamoDB|url=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html |access-date=2023-05-28 |website=docs.aws.amazon.com}}</ref> | ||
=== डायनेमो डीबी मद === | === डायनेमो डीबी मद === | ||
डाइनेमो डी बी में | डाइनेमो डी बी में मद विशेषताओं का समूह है जिसे किसी तालिका में विशिष्ट रूप से निर्धारित जा सकता है। विशेषता परमाणु डेटा इकाई है जो अपने आप में समाधान-मान युग्मन है। समाधान सदैव श्रृंखला प्रकार की होती है, जबकि मान एकाधिक डेटा प्रकारों में से एक का हो सकता है। | ||
किसी मद को उसकी विशेषताओं के उप-समूह जिसे समाधान कहा जाता है, का उपयोग करके तालिका में विशिष्ट रूप से निर्धारित | किसी मद को उसकी विशेषताओं के उप-समूह जिसे समाधान कहा जाता है, का उपयोग करके तालिका में विशिष्ट रूप से निर्धारित किया जाता है।<ref name=":4" /> | ||
==== डाइनेमो डी बी समाधान ==== | ==== डाइनेमो डी बी समाधान ==== | ||
प्राथमिक समाधान विशेषताओं का | प्राथमिक समाधान विशेषताओं का समूह है जो डायनेमो डीबी तालिका में विशिष्ट रूप से मद की अभिज्ञान करता है। डाइनेमो डी बी तालिका के निर्माण के लिए प्राथमिक समाधान की परिभाषा की आवश्यकता थी। डायनेमो डीबी तालिका में प्रत्येक मद में प्राथमिक समाधान बनाने वाली सभी विशेषताओं का होना आवश्यक है, और तालिका में किसी भी दो मद में एक ही समाधान नहीं हो सकता है। डायनमो डीबी में प्राथमिक समाधान में एक या दो विशेषताएँ सम्मिलित हो सकती हैं। | ||
जब प्राथमिक समाधान मात्र विशेषता से बनी होती है, तब इसे विभाजन समाधान कहा जाता है। विभाजन समाधान डेटा मद का भौतिक स्थान नियुक्त करती है। इस स्थिति में, तालिका में किसी भी दो मद में समान विभाजन समाधान नहीं हो सकती हैं। | |||
जब प्राथमिक समाधान दो विशेषताओं से बनी होती है, तब प्रथम को विभाजन समाधान और संक्षेप समाधान कहा जाता है। विभाजन समाधान डेटा का भौतिक स्थान नियुक्त करती है, और संक्षेप समाधान उस भौतिक स्थान के अंदर अभिलेख की सापेक्ष तार्किक स्थिति नियुक्त करती है। इस स्थितियों में, तालिका में दो मदों में एक ही विभाजन समाधान हो सकता है, किन्तु विभाजन में किसी भी दो मद में एक ही संक्षेप समाधान नहीं हो सकती है। दूसरे शब्दों में विभाजन समाधान और संक्षेप समाधान के दिए गए संयोजन की प्रत्याभुति है कि डायनेमो डीबी तालिका में इसके साथ अधिकतम मद सम्मलित होता है।<ref name=":4" /> | |||
=== डायनेमो डीबी डेटा प्रकार === | === डायनेमो डीबी डेटा प्रकार === | ||
डाइनेमो डी बी संख्यात्मक, श्रृंखला, बूलियन, प्रपत्र और समूह डेटा प्रकारों का समर्थन करता है।<ref>{{Cite web |title=Amazon DynamoDB में समर्थित डेटा प्रकार और नामकरण नियम - Amazon DynamoDB|url=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html |access-date=2023-05-28 |website=docs.aws.amazon.com}}</ref> | डाइनेमो डी बी संख्यात्मक, श्रृंखला, बूलियन, प्रपत्र और समूह डेटा प्रकारों का समर्थन करता है।<ref>{{Cite web |title=Amazon DynamoDB में समर्थित डेटा प्रकार और नामकरण नियम - Amazon DynamoDB|url=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html |access-date=2023-05-28 |website=docs.aws.amazon.com}}</ref> | ||
=== डायनेमो डीबी सूचकांक === | === डायनेमो डीबी सूचकांक === | ||
किसी तालिका की प्राथमिक समाधान डाइनेमो डी बी तालिका का अभाव या प्राथमिक सूचकांक है। | किसी तालिका की प्राथमिक समाधान डाइनेमो डी बी तालिका का अभाव या प्राथमिक सूचकांक है। | ||
इसके अतिरिक्त | इसके अतिरिक्त डाइनेमो डी बी तालिका में द्वितीयक सूचकांक हो सकते हैं। द्वितीयक सूचकांक को विशेषता पर परिभाषित किया जाता है, जो प्राथमिक सूचकांक के रूप में विभाजन समाधान या संक्षेप समाधान से भिन्न होता है। | ||
जब | जब द्वितीयक सूचकांक में प्राथमिक सूचकांक के समान विभाजन समाधान होता है किन्तु प्रथक योग समाधान होता है तो इसे स्थानीय माध्यमिक सूचकांक कहा जाता है। | ||
जब प्राथमिक सूचकांक और माध्यमिक सूचकांक में प्रथक -प्रथक विभाजन समाधान होती है, तब माध्यमिक सूचकांक को वैश्विक माध्यमिक सूचकांक के रूप में जाना जाता है।<ref name=":4" /> | जब प्राथमिक सूचकांक और माध्यमिक सूचकांक में प्रथक -प्रथक विभाजन समाधान होती है, तब माध्यमिक सूचकांक को वैश्विक माध्यमिक सूचकांक के रूप में जाना जाता है।<ref name=":4" /> | ||
==विकास संबंधी विचार== | ==विकास संबंधी विचार== | ||
=== वाक्य - विन्यास === | === वाक्य - विन्यास === | ||
डाइनेमो डी बी अपनी सर्वव्यापकता के कारण अपने वाक्य - विन्यास के लिए [[JSON|जेएसओएन]] का उपयोग करता है। सूची निर्मित क्रिया मात्र तीन तर्कों की अनुरोध करती है: सूची नाम, समाधान योजना--एक सूची जिसमें | डाइनेमो डी बी अपनी सर्वव्यापकता के कारण अपने वाक्य - विन्यास के लिए [[JSON|जेएसओएन]] का उपयोग करता है। सूची निर्मित क्रिया मात्र तीन तर्कों की अनुरोध करती है: सूची नाम, समाधान योजना--एक सूची जिसमें विभाजन समाधान और वैकल्पिक संक्षेप समाधान होता है। और विशेषता परिभाषाएँ--परिभाषित की जाने वाली विशेषताओं की सूची जिसमें अल्प से अल्प उपयोग की जाने वाली विशेषताओं के लिए परिभाषाएं होनी चाहिए एवं विभाजन और संक्षेप समाधान है। जबकि सम्बंधित डेटाबेस शक्तिशाली प्रश्नचिहन भाषाएँ प्रदान करते हैं, डाइनेमो डी बी मात्र स्थापित , मार्ग, अद्यतन और विलोपन संचालन प्रदान करता है। स्थापित अनुरोधों में सूची नाम विशेषता और मद विशेषता सम्मिलित होती है, जिसमें मद की सभी विशेषताएँ और मान सम्मिलित होता हैं। अद्यतन अनुरोध समान वाक्य - विन्यास का अनुसरण करता है। इसी प्रकार, किसी मद को प्राप्त करने या प्रथक करने के लिए, मात्र सूची नाम और समाधान निर्दिष्ट करना है। | ||
==सिस्टम संरचनाएं== | ==सिस्टम संरचनाएं== | ||
Line 71: | Line 57: | ||
=== डेटा संरचनाएं === | === डेटा संरचनाएं === | ||
डेटा प्रबंधित करने के लिए डाइनेमो डी बी [[हैश फंकशन]] और [[बी-वृक्ष|बी-ट्री]] का उपयोग करता है। प्रविष्टि पर डेटा को सर्व-प्रथम विभाजन कुंजी पर हैशिंग के माध्यम से | डेटा प्रबंधित करने के लिए डाइनेमो डी बी [[हैश फंकशन]] और [[बी-वृक्ष|बी-ट्री]] का उपयोग करता है। प्रविष्टि पर डेटा को सर्व-प्रथम विभाजन कुंजी पर हैशिंग के माध्यम से विभिन्न विभाजनों में वितरित किया जाता है। प्रत्येक विभाजन 10 जीबी तक डेटा संग्रहीत कर सकता है और अभाव रूप से 1,000 लेखन क्षमता इकाइयों (डब्ल्यूसीयू) और 3,000 अध्ययन की क्षमता इकाइयों (आरसीयू) को नियंत्रण कर सकता है।<ref name=":2">{{Cite web|url=https://shinesolutions.com/2016/06/27/a-deep-dive-into-dynamodb-partitions/|title=DynamoDB विभाजन में एक गहरा गोता|last=Gunasekara|first=Archie|date=2016-06-27|website=Shine Solutions Group|language=en|access-date=2019-08-03}}</ref> आरसीयू आकार में 4 केबी तक की विषयों के लिए प्रति सेकंड अध्ययन वाली [[मजबूत स्थिरता|अंतिम स्थिरता]] या प्रति सेकंड दो अंततः स्थिरता अध्ययन का प्रतिनिधित्व करता है।<ref name=":0">{{Cite web |date=August 10, 2012 |title=Amazon DynamoDB डेवलपर गाइड|url=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html |access-date=July 18, 2019 |website=AWS}}</ref> डब्लू सी यू 1के बी आकार तक के मद के लिए प्रति सेकंड प्रति लेखन का प्रतिनिधित्व करता है।डेटा हानि को रोकने के लिए, डाइनेमो डी बी में प्रतिकृति और दीर्घकालिक स्टोरेज की दो-स्तरीय बैकअप सिस्टम है।<ref name=":3">{{Citation|title=AWS re:Invent 2018: Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (DAT321)|url=https://www.youtube.com/watch?v=yvBR71D0nAQ|language=en|access-date=2019-08-03}}</ref> प्रत्येक विभाजन में तीन बिंदु होते हैं, जिनमें से प्रत्येक में उस विभाजन के डेटा की एक प्रति होती है। प्रत्येक बिंदु में दो डेटा संरचनाएं भी होती हैं: बी ट्री जिसका उपयोग विषयों का पता लगाने के लिए किया जाता है, और प्रतिकृति लॉग जो बिंदु में किए गए सभी परिवर्तनों को टिप्पणियाँ करता है। डाइनेमो डी बी समय-समय पर इन दो डेटा संरचनाओं का अनौपचारिक चित्र लेता है और उन्हें अमेज़न एस3 में एक महीने के लिए संग्रहीत करता है, जिससे इंजीनियर अपने डेटाबेस की समय में इंगित पुनर्स्थापना कर सकते है। | ||
प्रत्येक विभाजन के अंदर, तीन बिंदु् में से एक को मुख्य | प्रत्येक विभाजन के अंदर, तीन बिंदु् में से एक को मुख्य बिंदु नामित किया गया है। सभी लेखन कार्य प्रचार से पूर्व मुख्य बिंदु के माध्यम से भ्रमण करते हैं, जो डाइनेमो डी बी में लेखन को सुसंगत बनाता है। अपनी स्थिति बनाए रखने के लिए, मुख्य बिंदु प्रत्येक 1.5 सेकंड में एक दूसरे बिंदु को हत्कंपन प्रेषित करता है। यदि किसी अन्य बिंदु को हत्कंपन प्राप्त होना संवृत हो जाए, तब यह नए मुख्य बिंदु के चयन की प्रक्रिया प्रारंभ कर सकता है। डाइनेमो डी बी मुख्य बिंदु के चयन करने के लिए पैक्सोस (कंप्यूटर विज्ञान) का उपयोग करता है। | ||
विभाजन और बिंदु् के प्रावधान और प्रबंधन जैसे इंजीनियरिंग उपरिव्यय के कारण अमेज़ॅन इंजीनियरों ने मूल रूप से डायनमो से परिवर्जन | विभाजन और बिंदु् के प्रावधान और प्रबंधन जैसे इंजीनियरिंग उपरिव्यय के कारण अमेज़ॅन इंजीनियरों ने मूल रूप से डायनमो से परिवर्जन किया।<ref name=":1" /> डाइनेमो डी बी समूह ने डेटाबेस को प्रबंधित करने के लिए सेवा बनाई जिसे वह ऑटो एडमिन कहती है।<ref name=":3" /> जब कोई बिंदु प्रतिक्रिया देना संवृत कर देता है तब ऑटो एडमिन उसे दूसरे बिंदु से डेटा प्रतिलिपि करके परिवर्तित देता है। जब कोई विभाजन अपनी तीन सीमाओं (आरसीयू , डब्लूसीयू, या 10 जीबी) में से किसी एक से अधिक हो जाता है, तब ऑटो एडमिन डेटा को और अधिक खंडित करने के लिए स्वचालित रूप से अतिरिक्त विभाजन जोड़ देता है।<ref name=":2" /> | ||
सम्बंधित आदर्श | सम्बंधित आदर्श में सूचीकरण सिस्टम की भांति, डाइनेमो डी बी अनुरोध करता है कि किसी तालिका का कोई भी अद्यतन तालिका के प्रत्येक सूचकांक में प्रदर्शित होना है। डाइनेमो डी बी इसे लॉग प्रोपेगेटर नामक सेवा का उपयोग करके नियंत्रित करते है, जो प्रत्येक बिंदु में प्रतिकृति लॉग की सदस्यता लेता है और आवश्यकतानुसार सूचकांकों को अतिरिक्त स्थापित , अद्यतन और विलोपन अनुरोध प्रेषित करता है।<ref name=":3" /> क्योंकि सूचकांकों के परिणामस्वरूप लेखन अनुरोधों के लिए पर्याप्त प्रदर्शन संपर्क होता है, डाइनेमो डी बी किसी उपयोगकर्ता को किसी भी तालिका में उनमें से अधिकतम पांच की अनुमति देता है। | ||
=== प्रश्नचिहन निष्पादन === | === प्रश्नचिहन निष्पादन === | ||
मान लीजिए कि | मान लीजिए कि डाइनेमो डी बी उपयोगकर्ता लेखन संचालन (स्थापित , अद्यतन या विलोपन ) निर्गत करता है। जबकि विशिष्ट सम्बंधित सिस्टम एसक्यूएल प्रश्नचिहन को सम्बंधित बीजगणित में परिवर्तित कर डेटा है और अनुकूलन एल्गोरिदम संचालित करता है। डाइनेमो डी बी दोनों प्रक्रियाओं को त्याग देता है और कार्य करने का अधिकार प्राप्त कर लेता है।<ref name=":3" /> अनुरोध डाइनेमो डी बी अनुरोध अनुमार्गक पर आता है, जो प्रमाणित करता है--क्या अनुरोध वहां से आ रहा है/जिसके होने का प्रमाणित किया गया है? ––और प्राधिकरण की जांच करता है––क्या अनुरोध प्रस्तुत करने वाले उपयोगकर्ता के पास अपेक्षित अनुमतियां हैं? यह मानते हुए कि ये चेक स्वीकृति हो गए हैं, सिस्टम को उचित विभाजन में पहुंचने के लिए अनुरोध की विभाजन समाधान को हैश कर देता है। इसके अंदर मुख्य तीन बिंदु हैं, प्रत्येक में विभाजन के डेटा की एक प्रति है। सिस्टम मुख्य बिंदु को लिखता है, तत्पश्चात दूसरे बिंदु को लिखता है, तत्पश्चात सफलता संदेश प्रेषित करता है, और अंत में तीसरे बिंदु को प्रचारित करता रहता है। लेखन सुसंगत होते हैं क्योंकि वे सदैव मुख्य बिंदु के माध्यम से सबसे पहले भ्रमण करते हैं। | ||
अंत में, लॉग प्रोपेगेटर सभी सूचकांकों में परिवर्तन का प्रसार करता है। प्रत्येक सूचीकरण के लिए | अंत में, लॉग प्रोपेगेटर सभी सूचकांकों में परिवर्तन का प्रसार करता है। प्रत्येक सूचीकरण के लिए यह मद से उस सूचीकरण के प्राथमिक समाधान मान को अधिकार कर लेता है, तत्पश्चात लॉग प्रसार के बिना उस सूचीकरण पर वही लिखता है। यदि संचालन पूर्व से उपस्थित मद के लिए अद्यतन है, तब अद्यतन विशेषता सूचकांक के लिए प्राथमिक समाधान के रूप में कार्य कर सकता है, और इस प्रकार उस सूचकांक के लिए बी ट्री को भी अद्यतन करना होता है। बी ट्री मात्र सम्मिलित करने, प्रथक करने और अध्ययन के संचालन को नियंत्रित करता हैं, इसलिए व्यवहार में जब लॉग प्रोपेगेटर अद्यतन संचालन प्राप्त करता है, तब यह सभी सूचकांकों के लिए विलोपन संचालन और स्थापित संचालन दोनों निर्गत करता है। | ||
अब मान लीजिए कि | अब मान लीजिए कि डाइनेमो डी बी उपयोगकर्ता मार्ग संचालन निर्गत करता है। अनुरोध अनुमार्गक प्रमाणीकरण और प्राधिकरण के साथ पूर्व की तरह कार्य करता है। इसके पश्चात् जैसा कि ऊपर बताया गया है, उचित हैश में प्रवेश के लिए हमारे पास अपनी विभाजन समाधान हैश है। अब हमें समस्या का प्रतिक्रिया करना पड़ता है: तीन बिंदु अंततः एक-दूसरे के साथ संगति में हैं, हम कैसे नियुक्त कर सकते हैं कि किसकी जांच करनी है? व्याख्या निर्गत करते समय डाइनेमो डी बी उपयोगकर्ता को दो विकल्प सुसंगत और अंततः सुसंगत प्रदान करता है। निरंतर अध्ययन किया गया मुख्य बिंदु पर जाता है। किन्तु स्थिरता-उपलब्धता व्यापार-संवृत यहां पुनः से उत्थापन करते है: व्याख्या-भारयुक्त सिस्टम में सदैव मुख्य बिंदु से अध्ययन से एकल बिंदु प्रभावित हो सकती है और उपलब्धता अल्प हो सकती है। | ||
दूसरा विकल्प | दूसरा विकल्प अंततः सुसंगत व्याख्या यादृच्छिक बिंदु का चयन करता है। व्यवहार में यह वह स्थान है जहां डाइनेमो डी बी उपलब्धता के लिए स्थिरता व्यापारिक होती है। यदि हम यह मार्ग अपनाते हैं, तब असंगति की संभावना क्या है? हमें सफलता प्राप्ति और तीसरे बिंदु तक प्रचार प्रारंभिक करने के लिए लेखन संचालन की आवश्यकता होगी, किन्तु इसे समाप्त नहीं करना होगा। हमें इस तीसरे बिंदु को लक्षित करने के लिए सवं के मार्ग की भी आवश्यकता होती है। इसका कारण है कि लेखन संचालन के प्रसार विंडो के अंदर असंगतता की 1-में-3 संभावना है। यह विंडो कितनी लंबी है? किसी भी संख्या में आपदाओं के कारण एक बिंदु पिछड़ सकता है, किन्तु अधिकांश स्थितियों में, तीसरा बिंदु मुख्य के मिलीसेकंड के अंदर आधुनिकतम होता है। | ||
==प्रदर्शन== | ==प्रदर्शन== | ||
[[File:Aws-dynamodb-web-console-capacity.png|thumb|क्षमता अंकित प्रवर्धन]]डाइनेमो डी बी प्रदर्शन आव्युह | [[File:Aws-dynamodb-web-console-capacity.png|thumb|क्षमता अंकित प्रवर्धन]]डाइनेमो डी बी प्रदर्शन आव्युह को व्यक्त करता है जो उपयोगकर्ताओं को इसे उचित रूप से व्यवस्थित करने में सहायता करता है और डाइनेमो डी बी का उपयोग करने वाले अनुप्रयोगों को सुचारू रूप से प्रचलित करता है: | ||
* अनुरोध और | * अनुरोध और उपरोधन | ||
*[https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html त्रुटियां]: प्रावधानित प्रवाह क्षमता अपवाद, नियमबद्ध परीक्षण | *[https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html त्रुटियां]: प्रावधानित प्रवाह क्षमता अपवाद, नियमबद्ध परीक्षण विफल अपवाद, आंतरिक सर्वर त्रुटि (एचटीटीपी 500) | ||
* [http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html वैश्विक माध्यमिक सूचकांक] निर्माण से संबंधित आव्युह<ref>{{cite web|url=https://www.datadoghq.com/blog/top-dynamodb-performance-metrics/|title=शीर्ष DynamoDB प्रदर्शन मेट्रिक्स|date=15 September 2015 }}</ref> | * [http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html वैश्विक माध्यमिक सूचकांक] निर्माण से संबंधित आव्युह<ref>{{cite web|url=https://www.datadoghq.com/blog/top-dynamodb-performance-metrics/|title=शीर्ष DynamoDB प्रदर्शन मेट्रिक्स|date=15 September 2015 }}</ref> | ||
इन आव्युह को अमेज़ॅन वेब सेवाएं प्रबंधन सकर्मक क्रिया का उपयोग करके, एडब्ल्यूएस [[कमांड लाइन इंटरफेस]] का उपयोग करके, या [[अमेज़ॅन क्लाउडवॉच|अमेज़ॅन क्लाउड वॉच]] के साथ एकीकृत | इन आव्युह को अमेज़ॅन वेब सेवाएं प्रबंधन सकर्मक क्रिया का उपयोग करके, एडब्ल्यूएस [[कमांड लाइन इंटरफेस]] का उपयोग करके, या [[अमेज़ॅन क्लाउडवॉच|अमेज़ॅन क्लाउड वॉच]] के साथ एकीकृत नियंत्रण उपकरण का उपयोग करके चिन्हित किया जा सकता है।<ref>{{cite web|url=https://www.datadoghq.com/blog/how-to-collect-dynamodb-metrics/|title=DynamoDB मेट्रिक्स कैसे एकत्र करें|date=15 September 2015 }}</ref> | ||
==भाषा अनुबंधन== | ==भाषा अनुबंधन== | ||
डायनेमो डीबी भाषा अनुबंधन वाली भाषाओं और रचना कार्य में [[जावा (प्रोग्रामिंग भाषा)|जावा (कार्यक्रम निर्माण भाषा)]], [[जावास्क्रिप्ट]], बिंदु.जेएस, गो (कार्यक्रम निर्माण भाषा), सी, नेट (कार्यक्रम निर्माण भाषा) [[पर्ल]], [[पीएचपी]], [[पायथन (प्रोग्रामिंग भाषा)|पायथन (कार्यक्रम निर्माण भाषा)]] | डायनेमो डीबी भाषा अनुबंधन वाली भाषाओं और रचना कार्य में [[जावा (प्रोग्रामिंग भाषा)|जावा (कार्यक्रम निर्माण भाषा)]], [[जावास्क्रिप्ट]], बिंदु.जेएस, गो (कार्यक्रम निर्माण भाषा), सी, नेट (कार्यक्रम निर्माण भाषा) [[पर्ल]], [[पीएचपी]], [[पायथन (प्रोग्रामिंग भाषा)|पायथन (कार्यक्रम निर्माण भाषा)]] [[रूबी (प्रोग्रामिंग भाषा)|रूबी (कार्यक्रम निर्माण भाषा)]], रस्ट (कार्यक्रम निर्माण भाषा), [[हास्केल (प्रोग्रामिंग भाषा)|हास्केल (कार्यक्रम निर्माण भाषा)]], [[एरलांग (प्रोग्रामिंग भाषा)|एरलांग (कार्यक्रम निर्माण भाषा)]], डीजेंगो (वेब रचना कार्य), और [[ ग्रेल्स (ढांचा) |ग्रेल्स (अनुरूप)]] सम्मिलित हैं।<ref>{{cite web|url=https://aws.amazon.com/blogs/aws/amazon-dynamodb-libraries-mappers-and-mock-implementations-galore/|title=Amazon DynamoDB लाइब्रेरीज़, मैपर्स, और नकली कार्यान्वयन प्रचुर मात्रा में!|website=Amazon Web Services|date=5 April 2012 }}</ref> | ||
== संकेतावली उदाहरण == | == संकेतावली उदाहरण == | ||
[[File:Aws-dynamodb-webconsole-item (cropped).png|thumb|एडब्लूएस डाइनेमो डी बी : मद दृश्य]] | [[File:Aws-dynamodb-webconsole-item (cropped).png|thumb|एडब्लूएस डाइनेमो डी बी : मद दृश्य]] | ||
Line 161: | Line 140: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== पदच्युत === | === पदच्युत === | ||
Line 195: | Line 173: | ||
panic(err) | panic(err) | ||
} | } | ||
</syntaxhighlight>[https://aws.amazon.com/blogs/developer/introduction अभिव्यक्ति निर्माता] का उपयोग करके | </syntaxhighlight>[https://aws.amazon.com/blogs/developer/introduction अभिव्यक्ति निर्माता] का उपयोग करके पदच्युत में [https://docs.aws.amazon.com/sdk-for-go/api/service/dynamodb/expression/#UpdateBuilder अद्यतन मद] | ||
<syntaxhighlight lang="go"> | <syntaxhighlight lang="go"> | ||
Line 230: | Line 208: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==यह भी देखें== | ==यह भी देखें== | ||
*[[अमेज़न अरोरा]] | *[[अमेज़न अरोरा]] | ||
Line 246: | Line 223: | ||
* {{Official website|http://aws.amazon.com/dynamodb/}} | * {{Official website|http://aws.amazon.com/dynamodb/}} | ||
*[https://www.youtube.com/watch?v=6yqfmXiZTlM <nowiki>Video: AWS re:Invent 2019: [REPEAT 1] अमेज़न डाइनेमो डी बी deep dive: Advanced design patterns (DAT403-R1)</nowiki>] | *[https://www.youtube.com/watch?v=6yqfmXiZTlM <nowiki>Video: AWS re:Invent 2019: [REPEAT 1] अमेज़न डाइनेमो डी बी deep dive: Advanced design patterns (DAT403-R1)</nowiki>] | ||
{{Cloud computing}} | {{Cloud computing}} | ||
[[Category:2012 में कंप्यूटर से संबंधित परिचय]] | |||
[[Category:CS1 English-language sources (en)]] | |||
[[Category:Collapse templates]] | |||
[[Category: | |||
[[Category:Created On 10/07/2023]] | [[Category:Created On 10/07/2023]] | ||
[[Category:Lua-based templates]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Official website not in Wikidata]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Short description with empty Wikidata description]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates that generate short descriptions]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Wikipedia metatemplates]] | |||
[[Category:अमेज़न वेब सेवाएँ|DynamoDB]] | |||
[[Category:कुंजी-मूल्य डेटाबेस]] | |||
[[Category:क्लाउड डेटाबेस]] | |||
[[Category:घन संग्रहण]] | |||
[[Category:नोएसक्यूएल]] | |||
[[Category:वितरित डेटा भंडार]] | |||
[[Category:संरचित भंडारण]] |
Latest revision as of 13:00, 4 August 2023
Developer(s) | अमेजन डॉट कॉम |
---|---|
Initial release | January 2012[1] |
Written in | जावा |
Operating system | रेखित-मंच |
Available in | अंग्रेज़ी |
Type | Template:समतल सूची |
License | स्वामित्व |
Website | aws |
अमेज़न डाइनेमोडीबी संपूर्ण रूप से प्रबंधित स्वामित्व वाला एनओएसक्यूएल डेटाबेस है जो अमेज़न डॉट कॉम के माध्यम से अमेज़न वेब सेवाएं विभाग के भाग के रूप में प्रस्तुत किया गया है।[2][3] डाइनेमो डी बी प्रतिकृति (कंप्यूटिंग), स्वत: प्रवर्धन, एन्क्रिप्शन स्थिरता और अन्य सुविधाओं के मध्य आवश्यकता होना, बैकअप के लिए अंतर्निहित समर्थन के साथ तीव्र सतत डेटा संरचना समाधान-मान डेटा संग्रह प्रदान करता है।[4][5]
पृष्ठभूमि
अमेज़न डॉट कॉम के सीटीओ वर्नर वोगल्स ने 2012 की घोषणा में इस परियोजना के लिए प्रेरणा प्रदान की है।[6] अमेज़ॅन का प्रारंभ सेवाओं के विकेन्द्रीकृत नेटवर्क के रूप में हुआ था। मूल रूप से सेवाओं का एक-दूसरे के डेटाबेस तक प्रत्यक्ष रूप से निकटता थी। जब यह इंजीनियरिंग संचालन पर एक बाधा बन गया तो सेवाएं सार्वजनिक-प्रतिक्रिया वाले एपीआई के पक्ष में इस प्रत्यक्ष रूप से निकटता स्वरूप से दूरस्थ हो गईं है। इसके पश्चात् भी तीसरे पक्ष के संबंधित डेटाबेस प्रबंधन सिस्टम को अमेज़ॅन के ग्राहक मूल को नियंत्रण के लिए संघर्ष करना पड़ा है। इसकी पराकाष्ठा 2004 के छुट्टियों के समय हुई, जब उच्च यातायात के कारण अनेक प्रौद्योगिकियाँ विफल हो गईं थी।
डेटा अतिरेक को अल्प करने के लिए इंजीनियर संबंधपरक में सिस्टम को सामान्य कर रहे थे, जो रचना जो स्टोरेज के लिए अनुकूलित है। परित्याग के रूप में उन्होंने डेटा के दिए गए "मद" (उदाहरण के रूप मे उत्पाद डेटाबेस में किसी उत्पाद से संबंधित जानकारी) को अनेक संबंधों में संग्रहीत किया और प्रश्न के लिए असंयुक्त भागों को एकत्रित करने में समय लगता है। अमेज़ॅन की अनेक सेवाओं ने अपने डेटा पर अधिकतर प्राथमिक-समाधान अध्ययन की अनुरोध की, और गति को सर्वोच्च प्राथमिकता के साथ इन भागो एकत्रित रखना अत्यधिक कठिन था।[7]
स्टोरेज दक्षता से अनुबंध करने वाली सामग्री, अमेज़ॅन की प्रतिक्रिया डायनमो (स्टोरेज सिस्टम) थी, यह आंतरिक उपयोग के लिए बनाया गया अत्यधिक उपलब्ध समाधान-मान स्टोरेज है।[6] ऐसा लगता था कि डायनमो में वह सब कुछ था जिसकी उनके इंजीनियरों को आवश्यकता थी, किन्तु इसे अपनाने में विलम्ब हुआ है। अमेज़ॅन के विकासक ने एस3 और सामान्तः डीबी के साथ "उचित कार्य" रचना स्वरूप को चयनित किया है। चूंकि इन प्रणालियों में ध्यान देने योग्य रचना कमजोरियों थीं, किन्तु उन्होंने हार्डवेयर प्रावधान और प्रवर्धन और डेटा को पुनः से विभाजित करने के अतिरिक्त की अनुरोध नहीं किया है। अमेज़ॅन की एनओएसक्यूएल विधि का आगामी संस्करण, डाइनेमो डी बी, इन डेटाबेस प्रबंधन कार्यों को स्वचालित करता है।
अवलोकन
डाइनेमो डी बी में, डेटा को तालिकाओं में मद के रूप में संग्रहीत किया जाता है, और सूचकांकों का उपयोग करके विवरण प्राप्त किया जा सकता है। मद में अनेक विशेषताएँ सम्मिलित होती हैं जो अनेक डेटा प्रकारों से संबंधित हो सकती हैं, और समाधान की आवश्यकता होती है जो तालिका में अद्वितीय होने की अपेक्षा है।
डायनेमो डीबी सूची
डाइनेमो डी बी तालिका विषयों का तार्किक समूह है, जो इस तालिका में संग्रहीत डेटा का प्रतिनिधित्व करती है। डाइनेमो डी बी की एनओएसक्यूएल प्रकृति को अवलोकन करते हुए, तालिकाओं के लिए यह आवश्यक नहीं है, कि तालिका के सभी मद किसी पूर्व निर्धारित योजना के अनुरूप होता है।[8]
डायनेमो डीबी मद
डाइनेमो डी बी में मद विशेषताओं का समूह है जिसे किसी तालिका में विशिष्ट रूप से निर्धारित जा सकता है। विशेषता परमाणु डेटा इकाई है जो अपने आप में समाधान-मान युग्मन है। समाधान सदैव श्रृंखला प्रकार की होती है, जबकि मान एकाधिक डेटा प्रकारों में से एक का हो सकता है।
किसी मद को उसकी विशेषताओं के उप-समूह जिसे समाधान कहा जाता है, का उपयोग करके तालिका में विशिष्ट रूप से निर्धारित किया जाता है।[8]
डाइनेमो डी बी समाधान
प्राथमिक समाधान विशेषताओं का समूह है जो डायनेमो डीबी तालिका में विशिष्ट रूप से मद की अभिज्ञान करता है। डाइनेमो डी बी तालिका के निर्माण के लिए प्राथमिक समाधान की परिभाषा की आवश्यकता थी। डायनेमो डीबी तालिका में प्रत्येक मद में प्राथमिक समाधान बनाने वाली सभी विशेषताओं का होना आवश्यक है, और तालिका में किसी भी दो मद में एक ही समाधान नहीं हो सकता है। डायनमो डीबी में प्राथमिक समाधान में एक या दो विशेषताएँ सम्मिलित हो सकती हैं।
जब प्राथमिक समाधान मात्र विशेषता से बनी होती है, तब इसे विभाजन समाधान कहा जाता है। विभाजन समाधान डेटा मद का भौतिक स्थान नियुक्त करती है। इस स्थिति में, तालिका में किसी भी दो मद में समान विभाजन समाधान नहीं हो सकती हैं।
जब प्राथमिक समाधान दो विशेषताओं से बनी होती है, तब प्रथम को विभाजन समाधान और संक्षेप समाधान कहा जाता है। विभाजन समाधान डेटा का भौतिक स्थान नियुक्त करती है, और संक्षेप समाधान उस भौतिक स्थान के अंदर अभिलेख की सापेक्ष तार्किक स्थिति नियुक्त करती है। इस स्थितियों में, तालिका में दो मदों में एक ही विभाजन समाधान हो सकता है, किन्तु विभाजन में किसी भी दो मद में एक ही संक्षेप समाधान नहीं हो सकती है। दूसरे शब्दों में विभाजन समाधान और संक्षेप समाधान के दिए गए संयोजन की प्रत्याभुति है कि डायनेमो डीबी तालिका में इसके साथ अधिकतम मद सम्मलित होता है।[8]
डायनेमो डीबी डेटा प्रकार
डाइनेमो डी बी संख्यात्मक, श्रृंखला, बूलियन, प्रपत्र और समूह डेटा प्रकारों का समर्थन करता है।[9]
डायनेमो डीबी सूचकांक
किसी तालिका की प्राथमिक समाधान डाइनेमो डी बी तालिका का अभाव या प्राथमिक सूचकांक है।
इसके अतिरिक्त डाइनेमो डी बी तालिका में द्वितीयक सूचकांक हो सकते हैं। द्वितीयक सूचकांक को विशेषता पर परिभाषित किया जाता है, जो प्राथमिक सूचकांक के रूप में विभाजन समाधान या संक्षेप समाधान से भिन्न होता है।
जब द्वितीयक सूचकांक में प्राथमिक सूचकांक के समान विभाजन समाधान होता है किन्तु प्रथक योग समाधान होता है तो इसे स्थानीय माध्यमिक सूचकांक कहा जाता है।
जब प्राथमिक सूचकांक और माध्यमिक सूचकांक में प्रथक -प्रथक विभाजन समाधान होती है, तब माध्यमिक सूचकांक को वैश्विक माध्यमिक सूचकांक के रूप में जाना जाता है।[8]
विकास संबंधी विचार
वाक्य - विन्यास
डाइनेमो डी बी अपनी सर्वव्यापकता के कारण अपने वाक्य - विन्यास के लिए जेएसओएन का उपयोग करता है। सूची निर्मित क्रिया मात्र तीन तर्कों की अनुरोध करती है: सूची नाम, समाधान योजना--एक सूची जिसमें विभाजन समाधान और वैकल्पिक संक्षेप समाधान होता है। और विशेषता परिभाषाएँ--परिभाषित की जाने वाली विशेषताओं की सूची जिसमें अल्प से अल्प उपयोग की जाने वाली विशेषताओं के लिए परिभाषाएं होनी चाहिए एवं विभाजन और संक्षेप समाधान है। जबकि सम्बंधित डेटाबेस शक्तिशाली प्रश्नचिहन भाषाएँ प्रदान करते हैं, डाइनेमो डी बी मात्र स्थापित , मार्ग, अद्यतन और विलोपन संचालन प्रदान करता है। स्थापित अनुरोधों में सूची नाम विशेषता और मद विशेषता सम्मिलित होती है, जिसमें मद की सभी विशेषताएँ और मान सम्मिलित होता हैं। अद्यतन अनुरोध समान वाक्य - विन्यास का अनुसरण करता है। इसी प्रकार, किसी मद को प्राप्त करने या प्रथक करने के लिए, मात्र सूची नाम और समाधान निर्दिष्ट करना है।
सिस्टम संरचनाएं
डेटा संरचनाएं
डेटा प्रबंधित करने के लिए डाइनेमो डी बी हैश फंकशन और बी-ट्री का उपयोग करता है। प्रविष्टि पर डेटा को सर्व-प्रथम विभाजन कुंजी पर हैशिंग के माध्यम से विभिन्न विभाजनों में वितरित किया जाता है। प्रत्येक विभाजन 10 जीबी तक डेटा संग्रहीत कर सकता है और अभाव रूप से 1,000 लेखन क्षमता इकाइयों (डब्ल्यूसीयू) और 3,000 अध्ययन की क्षमता इकाइयों (आरसीयू) को नियंत्रण कर सकता है।[10] आरसीयू आकार में 4 केबी तक की विषयों के लिए प्रति सेकंड अध्ययन वाली अंतिम स्थिरता या प्रति सेकंड दो अंततः स्थिरता अध्ययन का प्रतिनिधित्व करता है।[11] डब्लू सी यू 1के बी आकार तक के मद के लिए प्रति सेकंड प्रति लेखन का प्रतिनिधित्व करता है।डेटा हानि को रोकने के लिए, डाइनेमो डी बी में प्रतिकृति और दीर्घकालिक स्टोरेज की दो-स्तरीय बैकअप सिस्टम है।[12] प्रत्येक विभाजन में तीन बिंदु होते हैं, जिनमें से प्रत्येक में उस विभाजन के डेटा की एक प्रति होती है। प्रत्येक बिंदु में दो डेटा संरचनाएं भी होती हैं: बी ट्री जिसका उपयोग विषयों का पता लगाने के लिए किया जाता है, और प्रतिकृति लॉग जो बिंदु में किए गए सभी परिवर्तनों को टिप्पणियाँ करता है। डाइनेमो डी बी समय-समय पर इन दो डेटा संरचनाओं का अनौपचारिक चित्र लेता है और उन्हें अमेज़न एस3 में एक महीने के लिए संग्रहीत करता है, जिससे इंजीनियर अपने डेटाबेस की समय में इंगित पुनर्स्थापना कर सकते है।
प्रत्येक विभाजन के अंदर, तीन बिंदु् में से एक को मुख्य बिंदु नामित किया गया है। सभी लेखन कार्य प्रचार से पूर्व मुख्य बिंदु के माध्यम से भ्रमण करते हैं, जो डाइनेमो डी बी में लेखन को सुसंगत बनाता है। अपनी स्थिति बनाए रखने के लिए, मुख्य बिंदु प्रत्येक 1.5 सेकंड में एक दूसरे बिंदु को हत्कंपन प्रेषित करता है। यदि किसी अन्य बिंदु को हत्कंपन प्राप्त होना संवृत हो जाए, तब यह नए मुख्य बिंदु के चयन की प्रक्रिया प्रारंभ कर सकता है। डाइनेमो डी बी मुख्य बिंदु के चयन करने के लिए पैक्सोस (कंप्यूटर विज्ञान) का उपयोग करता है।
विभाजन और बिंदु् के प्रावधान और प्रबंधन जैसे इंजीनियरिंग उपरिव्यय के कारण अमेज़ॅन इंजीनियरों ने मूल रूप से डायनमो से परिवर्जन किया।[7] डाइनेमो डी बी समूह ने डेटाबेस को प्रबंधित करने के लिए सेवा बनाई जिसे वह ऑटो एडमिन कहती है।[12] जब कोई बिंदु प्रतिक्रिया देना संवृत कर देता है तब ऑटो एडमिन उसे दूसरे बिंदु से डेटा प्रतिलिपि करके परिवर्तित देता है। जब कोई विभाजन अपनी तीन सीमाओं (आरसीयू , डब्लूसीयू, या 10 जीबी) में से किसी एक से अधिक हो जाता है, तब ऑटो एडमिन डेटा को और अधिक खंडित करने के लिए स्वचालित रूप से अतिरिक्त विभाजन जोड़ देता है।[10]
सम्बंधित आदर्श में सूचीकरण सिस्टम की भांति, डाइनेमो डी बी अनुरोध करता है कि किसी तालिका का कोई भी अद्यतन तालिका के प्रत्येक सूचकांक में प्रदर्शित होना है। डाइनेमो डी बी इसे लॉग प्रोपेगेटर नामक सेवा का उपयोग करके नियंत्रित करते है, जो प्रत्येक बिंदु में प्रतिकृति लॉग की सदस्यता लेता है और आवश्यकतानुसार सूचकांकों को अतिरिक्त स्थापित , अद्यतन और विलोपन अनुरोध प्रेषित करता है।[12] क्योंकि सूचकांकों के परिणामस्वरूप लेखन अनुरोधों के लिए पर्याप्त प्रदर्शन संपर्क होता है, डाइनेमो डी बी किसी उपयोगकर्ता को किसी भी तालिका में उनमें से अधिकतम पांच की अनुमति देता है।
प्रश्नचिहन निष्पादन
मान लीजिए कि डाइनेमो डी बी उपयोगकर्ता लेखन संचालन (स्थापित , अद्यतन या विलोपन ) निर्गत करता है। जबकि विशिष्ट सम्बंधित सिस्टम एसक्यूएल प्रश्नचिहन को सम्बंधित बीजगणित में परिवर्तित कर डेटा है और अनुकूलन एल्गोरिदम संचालित करता है। डाइनेमो डी बी दोनों प्रक्रियाओं को त्याग देता है और कार्य करने का अधिकार प्राप्त कर लेता है।[12] अनुरोध डाइनेमो डी बी अनुरोध अनुमार्गक पर आता है, जो प्रमाणित करता है--क्या अनुरोध वहां से आ रहा है/जिसके होने का प्रमाणित किया गया है? ––और प्राधिकरण की जांच करता है––क्या अनुरोध प्रस्तुत करने वाले उपयोगकर्ता के पास अपेक्षित अनुमतियां हैं? यह मानते हुए कि ये चेक स्वीकृति हो गए हैं, सिस्टम को उचित विभाजन में पहुंचने के लिए अनुरोध की विभाजन समाधान को हैश कर देता है। इसके अंदर मुख्य तीन बिंदु हैं, प्रत्येक में विभाजन के डेटा की एक प्रति है। सिस्टम मुख्य बिंदु को लिखता है, तत्पश्चात दूसरे बिंदु को लिखता है, तत्पश्चात सफलता संदेश प्रेषित करता है, और अंत में तीसरे बिंदु को प्रचारित करता रहता है। लेखन सुसंगत होते हैं क्योंकि वे सदैव मुख्य बिंदु के माध्यम से सबसे पहले भ्रमण करते हैं।
अंत में, लॉग प्रोपेगेटर सभी सूचकांकों में परिवर्तन का प्रसार करता है। प्रत्येक सूचीकरण के लिए यह मद से उस सूचीकरण के प्राथमिक समाधान मान को अधिकार कर लेता है, तत्पश्चात लॉग प्रसार के बिना उस सूचीकरण पर वही लिखता है। यदि संचालन पूर्व से उपस्थित मद के लिए अद्यतन है, तब अद्यतन विशेषता सूचकांक के लिए प्राथमिक समाधान के रूप में कार्य कर सकता है, और इस प्रकार उस सूचकांक के लिए बी ट्री को भी अद्यतन करना होता है। बी ट्री मात्र सम्मिलित करने, प्रथक करने और अध्ययन के संचालन को नियंत्रित करता हैं, इसलिए व्यवहार में जब लॉग प्रोपेगेटर अद्यतन संचालन प्राप्त करता है, तब यह सभी सूचकांकों के लिए विलोपन संचालन और स्थापित संचालन दोनों निर्गत करता है।
अब मान लीजिए कि डाइनेमो डी बी उपयोगकर्ता मार्ग संचालन निर्गत करता है। अनुरोध अनुमार्गक प्रमाणीकरण और प्राधिकरण के साथ पूर्व की तरह कार्य करता है। इसके पश्चात् जैसा कि ऊपर बताया गया है, उचित हैश में प्रवेश के लिए हमारे पास अपनी विभाजन समाधान हैश है। अब हमें समस्या का प्रतिक्रिया करना पड़ता है: तीन बिंदु अंततः एक-दूसरे के साथ संगति में हैं, हम कैसे नियुक्त कर सकते हैं कि किसकी जांच करनी है? व्याख्या निर्गत करते समय डाइनेमो डी बी उपयोगकर्ता को दो विकल्प सुसंगत और अंततः सुसंगत प्रदान करता है। निरंतर अध्ययन किया गया मुख्य बिंदु पर जाता है। किन्तु स्थिरता-उपलब्धता व्यापार-संवृत यहां पुनः से उत्थापन करते है: व्याख्या-भारयुक्त सिस्टम में सदैव मुख्य बिंदु से अध्ययन से एकल बिंदु प्रभावित हो सकती है और उपलब्धता अल्प हो सकती है।
दूसरा विकल्प अंततः सुसंगत व्याख्या यादृच्छिक बिंदु का चयन करता है। व्यवहार में यह वह स्थान है जहां डाइनेमो डी बी उपलब्धता के लिए स्थिरता व्यापारिक होती है। यदि हम यह मार्ग अपनाते हैं, तब असंगति की संभावना क्या है? हमें सफलता प्राप्ति और तीसरे बिंदु तक प्रचार प्रारंभिक करने के लिए लेखन संचालन की आवश्यकता होगी, किन्तु इसे समाप्त नहीं करना होगा। हमें इस तीसरे बिंदु को लक्षित करने के लिए सवं के मार्ग की भी आवश्यकता होती है। इसका कारण है कि लेखन संचालन के प्रसार विंडो के अंदर असंगतता की 1-में-3 संभावना है। यह विंडो कितनी लंबी है? किसी भी संख्या में आपदाओं के कारण एक बिंदु पिछड़ सकता है, किन्तु अधिकांश स्थितियों में, तीसरा बिंदु मुख्य के मिलीसेकंड के अंदर आधुनिकतम होता है।
प्रदर्शन
डाइनेमो डी बी प्रदर्शन आव्युह को व्यक्त करता है जो उपयोगकर्ताओं को इसे उचित रूप से व्यवस्थित करने में सहायता करता है और डाइनेमो डी बी का उपयोग करने वाले अनुप्रयोगों को सुचारू रूप से प्रचलित करता है:
- अनुरोध और उपरोधन
- त्रुटियां: प्रावधानित प्रवाह क्षमता अपवाद, नियमबद्ध परीक्षण विफल अपवाद, आंतरिक सर्वर त्रुटि (एचटीटीपी 500)
- वैश्विक माध्यमिक सूचकांक निर्माण से संबंधित आव्युह[13]
इन आव्युह को अमेज़ॅन वेब सेवाएं प्रबंधन सकर्मक क्रिया का उपयोग करके, एडब्ल्यूएस कमांड लाइन इंटरफेस का उपयोग करके, या अमेज़ॅन क्लाउड वॉच के साथ एकीकृत नियंत्रण उपकरण का उपयोग करके चिन्हित किया जा सकता है।[14]
भाषा अनुबंधन
डायनेमो डीबी भाषा अनुबंधन वाली भाषाओं और रचना कार्य में जावा (कार्यक्रम निर्माण भाषा), जावास्क्रिप्ट, बिंदु.जेएस, गो (कार्यक्रम निर्माण भाषा), सी, नेट (कार्यक्रम निर्माण भाषा) पर्ल, पीएचपी, पायथन (कार्यक्रम निर्माण भाषा) रूबी (कार्यक्रम निर्माण भाषा), रस्ट (कार्यक्रम निर्माण भाषा), हास्केल (कार्यक्रम निर्माण भाषा), एरलांग (कार्यक्रम निर्माण भाषा), डीजेंगो (वेब रचना कार्य), और ग्रेल्स (अनुरूप) सम्मिलित हैं।[15]
संकेतावली उदाहरण
एचटीटीपी एपीआई
एचटीटीपी एपीआई के विरुद्ध, प्रश्नचिहन मद:
POST / HTTP/1.1
Host: dynamodb.<region>.<domain>;
Accept-Encoding: identity
Content-Length: <PayloadSizeBytes>
User-Agent: <UserAgentString>
Content-Type: application/x-amz-json-1.0
Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature>
X-Amz-Date: <Date>
X-Amz-Target: DynamoDB_20120810.Query
{
"TableName": "Reply",
"IndexName": "PostedBy-Index",
"Limit": 3,
"ConsistentRead": true,
"ProjectionExpression": "Id, PostedBy, ReplyDateTime",
"KeyConditionExpression": "Id = :v1 AND PostedBy BETWEEN :v2a AND :v2b",
"ExpressionAttributeValues": {
":v1": {"S": "Amazon DynamoDB#DynamoDB Thread 1"},
":v2a": {"S": "User A"},
":v2b": {"S": "User C"}
},
"ReturnConsumedCapacity": "TOTAL"
}
नमूना प्रतिक्रिया:
HTTP/1.1 200 OK
x-amzn-RequestId: <RequestId>
x-amz-crc32: <Checksum>
Content-Type: application/x-amz-json-1.0
Content-Length: <PayloadSizeBytes>
Date: <Date>
{
"ConsumedCapacity": {
"CapacityUnits": 1,
"TableName": "Reply"
},
"Count": 2,
"Items": [
{
"ReplyDateTime": {"S": "2015-02-18T20:27:36.165Z"},
"PostedBy": {"S": "User A"},
"Id": {"S": "Amazon DynamoDB#DynamoDB Thread 1"}
},
{
"ReplyDateTime": {"S": "2015-02-25T20:27:36.165Z"},
"PostedBy": {"S": "User B"},
"Id": {"S": "Amazon DynamoDB#DynamoDB Thread 1"}
}
],
"ScannedCount": 2
}
पदच्युत
पदच्युत में मद प्राप्त करें (कार्यक्रम निर्माण भाषा):
getItemInput := &dynamodb.GetItemInput{
TableName: aws.String("happy-marketer"),
Key: map[string]*dynamodb.AttributeValue{
"pk": {
S: aws.String("project"),
},
"sk": {
S: aws.String(email + " " + name),
},
},
}
getItemOutput, err := dynamodbClient.GetItem(getItemInput)
पदच्युत में निष्कासित मद (कार्यक्रम निर्माण भाषा):
deleteItemInput := &dynamodb.DeleteItemInput{
TableName: aws.String("happy-marketer"),
Key: map[string]*dynamodb.AttributeValue{
"pk": {
S: aws.String("project"),
},
"sk": {
S: aws.String(email + " " + name),
},
},
}
_, err := dynamodbClient.DeleteItem(deleteItemInput)
if err != nil {
panic(err)
}
अभिव्यक्ति निर्माता का उपयोग करके पदच्युत में अद्यतन मद
update := expression.Set(
expression.Name(name),
expression.Value(value),
)
expr, err := expression.NewBuilder().WithUpdate(update).Build()
if err != nil {
panic(err)
}
updateItemInput := &dynamodb.UpdateItemInput{
TableName: aws.String(tableName),
Key: map[string]*dynamodb.AttributeValue{
"pk": {
S: aws.String("project"),
},
"sk": {
S: aws.String("mySortKeyValue"),
},
},
UpdateExpression: expr.Update(),
ExpressionAttributeNames: expr.Names(),
ExpressionAttributeValues: expr.Values(),
}
fmt.Printf("updateItemInput: %#v\n", updateItemInput)
_, err = dynamodbClient.UpdateItem(updateItemInput)
if err != nil {
panic(err)
}
यह भी देखें
- अमेज़न अरोरा
- अमेज़ॅन प्रपत्र डीबी
- अमेज़ॅन रेड शिफ्ट
- अमेज़ॅन सम्बंधित डेटाबेस सेवा
- संबंधपरक डेटाबेस प्रबंधन प्रणालियों की तुलना
संदर्भ
- ↑ "Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications - All Things Distributed". www.allthingsdistributed.com. 18 January 2012.
- ↑ Clark, Jack (2012-01-19). "अमेज़न DynamoDB क्लाउड डेटाबेस सेवा पर स्विच करता है". ZDNet. Retrieved 2012-01-21.
- ↑ "Fast NoSQL Key-Value Database – Amazon DynamoDB – Amazon Web Services". Amazon Web Services, Inc. (in English). Retrieved 2023-05-28.
- ↑ "Amazon DynamoDB Features | NoSQL Key-Value Database | Amazon Web Services". Amazon Web Services, Inc. (in English). Retrieved 2023-05-28.
- ↑ "What is Amazon DynamoDB? - Amazon DynamoDB". docs.aws.amazon.com. Retrieved 2023-05-28.
- ↑ 6.0 6.1 Vogels, Werner (2012-01-18). "Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications". All Things Distributed blog. Retrieved 2012-01-21.
- ↑ 7.0 7.1 DeCandia, Giuseppe; Hastorun, Deniz; Jampani, Madan; Kakulapati, Gunavardhan; Lakshman, Avinash; Pilchin, Alex; Sivasubramanian, Swaminathan; Vosshall, Peter; Vogels, Werner (October 2007). "Dynamo: Amazon's Highly Available Key–value Store". SIGOPS Oper. Syst. Rev. 41 (6): 205–220. doi:10.1145/1323293.1294281. ISSN 0163-5980.
- ↑ 8.0 8.1 8.2 8.3 "Amazon DynamoDB के मुख्य घटक - Amazon DynamoDB". docs.aws.amazon.com. Retrieved 2023-05-28.
- ↑ "Amazon DynamoDB में समर्थित डेटा प्रकार और नामकरण नियम - Amazon DynamoDB". docs.aws.amazon.com. Retrieved 2023-05-28.
- ↑ 10.0 10.1 Gunasekara, Archie (2016-06-27). "DynamoDB विभाजन में एक गहरा गोता". Shine Solutions Group (in English). Retrieved 2019-08-03.
- ↑ "Amazon DynamoDB डेवलपर गाइड". AWS. August 10, 2012. Retrieved July 18, 2019.
- ↑ 12.0 12.1 12.2 12.3 AWS re:Invent 2018: Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (DAT321) (in English), retrieved 2019-08-03
- ↑ "शीर्ष DynamoDB प्रदर्शन मेट्रिक्स". 15 September 2015.
- ↑ "DynamoDB मेट्रिक्स कैसे एकत्र करें". 15 September 2015.
- ↑ "Amazon DynamoDB लाइब्रेरीज़, मैपर्स, और नकली कार्यान्वयन प्रचुर मात्रा में!". Amazon Web Services. 5 April 2012.