अमेज़ॅन डायनेमोडीबी: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
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>
अमेज़न डाइनेमो डी बी एक संपूर्ण रूप से प्रबंधित स्वामित्व वाला [[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>


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




डेटा अतिरेक को अल्प करने के लिए इंजीनियर संबंधपरक में सिस्टम को सामान्य कर रहे थे, जो रचना जो भंडारण के लिए अनुकूलित है। परित्याग के रूप में उन्होंने डेटा के एक दिए गए "मद" (उदाहरण के लिए, उत्पाद डेटाबेस में किसी उत्पाद से संबंधित जानकारी) को अनेक संबंधों में संग्रहीत किया और एक प्रश्न के लिए असंयुक्त भागों को एकत्रित करने में समय लगता है। अमेज़ॅन की अनेक सेवाओं ने अपने डेटा पर अधिकतर प्राथमिक-समाधान अध्ययन की अनुरोध की, और गति को सर्वोच्च प्राथमिकता के साथ, इन भागो एकत्रित रखना अत्यधिक कठिन था।<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=":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 और सामान्तः डीबी के साथ [[अमेज़न हो सकता है|"उचित कार्य"]] रचना स्वरूप को चयनित करा है। चूंकि इन प्रणालियों में ध्यान देने योग्य रचना कमजोरियों थीं, किन्तु उन्होंने हार्डवेयर प्रावधान और प्रवर्धन और डेटा को पुनः से विभाजित करने के अतिरिक्त की अनुरोध नहीं किया है। अमेज़ॅन की एनओएसक्यूएल विधि का आगामी संस्करण, डाइनेमो डी बी, इन डेटाबेस प्रबंधन कार्यों को स्वचालित करता है।
स्टोरेज दक्षता से अनुबंध करने वाली सामग्री, अमेज़ॅन की प्रतिक्रिया डायनमो (स्टोरेज प्रणाली) थी, आंतरिक उपयोग के लिए बनाया गया एक अत्यधिक उपलब्ध समाधान-मान भण्डार है।<ref name="Vogels 2012-01-18" /> ऐसा लगता था कि डायनमो में वह सब कुछ था जिसकी उनके इंजीनियरों को आवश्यकता थी, किन्तु इसे अपनाने में विलम्ब हुआ है। अमेज़ॅन के विकासक ने एस3 और सामान्तः डीबी के साथ [[अमेज़न हो सकता है|"उचित कार्य"]] रचना स्वरूप को चयनित करा है। चूंकि इन प्रणालियों में ध्यान देने योग्य रचना कमजोरियों थीं, किन्तु उन्होंने हार्डवेयर प्रावधान और प्रवर्धन और डेटा को पुनः से विभाजित करने के अतिरिक्त की अनुरोध नहीं किया है। अमेज़ॅन की एनओएसक्यूएल विधि का आगामी संस्करण, डाइनेमो डी बी, इन डेटाबेस प्रबंधन कार्यों को स्वचालित करता है।




Line 33: Line 33:


=== डायनेमो डीबी सूची ===
=== डायनेमो डीबी सूची ===
डाइनेमो डी बी तालिका वस्तुओं का एक तार्किक समूह है, जो इस तालिका में संग्रहीत डेटा का प्रतिनिधित्व करती है। डाइनेमो डी बी की एनओएसक्यूएल प्रकृति को अवलोकन करते हुए, तालिकाओं के लिए यह आवश्यक नहीं है कि तालिका के सभी मद किसी पूर्व निर्धारित योजना के अनुरूप होता है।<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">{{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>




Line 40: Line 40:


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


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


जब प्राथमिक समाधान दो विशेषताओं से बनी होती है, तब प्रथम को विभाजन समाधान और संक्षेप समाधान कहा जाता है। विभाजन समाधान डेटा का भौतिक स्थान नियुक्त करती है, और संक्षेप समाधान उस भौतिक स्थान के अंदर अभिलेख की सापेक्ष तार्किक स्थिति नियुक्त करती है। इस स्थितियों में, तालिका में दो मदों में एक ही विभाजन समाधान हो सकती है, किन्तु विभाजन में किसी भी दो मद में एक ही संक्षेप समाधान नहीं हो सकती है। दूसरे शब्दों में, विभाजन समाधान और संक्षेप समाधान के दिए गए संयोजन की प्रत्याभुति है कि डायनेमो डीबी तालिका में इसके साथ अधिकतम एक मद सम्मलित होता है।<ref name=":4" />
जब प्राथमिक समाधान दो विशेषताओं से बनी होती है, तब प्रथम को विभाजन समाधान और संक्षेप समाधान कहा जाता है। विभाजन समाधान डेटा का भौतिक स्थान नियुक्त करती है, और संक्षेप समाधान उस भौतिक स्थान के अंदर अभिलेख की सापेक्ष तार्किक स्थिति नियुक्त करती है। इस स्थितियों में, तालिका में दो मदों में एक ही विभाजन समाधान हो सकती है, किन्तु विभाजन में किसी भी दो मद में एक ही संक्षेप समाधान नहीं हो सकती है। दूसरे शब्दों में, विभाजन समाधान और संक्षेप समाधान के दिए गए संयोजन की प्रत्याभुति है कि डायनेमो डीबी तालिका में इसके साथ अधिकतम एक मद सम्मलित होता है।<ref name=":4" />
Line 65: Line 65:


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


==सिस्टम संरचनाएं==
==सिस्टम संरचनाएं==
Line 71: Line 71:


=== डेटा संरचनाएं ===
=== डेटा संरचनाएं ===
डेटा प्रबंधित करने के लिए डाइनेमो डी बी [[हैश फंकशन]] और [[बी-वृक्ष]] का उपयोग करता है। प्रवेश पर, डेटा को पहले विभाजन समाधान पर हैशिंग के माध्यम के विभिन्न विभाजनों में वितरित किया जाता है। प्रत्येक विभाजन 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> एक आरसीयू आकार में 4KB तक की वस्तुओं के लिए प्रति सेकंड अध्ययन वाली एक [[मजबूत स्थिरता|शक्तिशाली स्थिरता]] या प्रति सेकंड दो अंतिम स्थिरता अध्ययन का प्रतिनिधित्व करता है।<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> एक WCU 1KB आकार तक के मद के लिए प्रति सेकंड एक राइट का प्रतिनिधित्व करता है।
डेटा प्रबंधित करने के लिए डाइनेमो डी बी [[हैश फंकशन]] और [[बी-वृक्ष|बी-ट्री]] का उपयोग करता है। प्रविष्टि पर डेटा को सर्व-प्रथम विभाजन कुंजी पर हैशिंग के माध्यम से  विभिन्न विभाजनों में वितरित किया जाता है। प्रत्येक विभाजन 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> प्रत्येक विभाजन में तीन नोड होते हैं, जिनमें से प्रत्येक में उस विभाजन के डेटा की एक प्रति होती है। प्रत्येक नोड में दो डेटा संरचनाएं भी होती हैं: एक बी ट्री जिसका उपयोग वस्तुओं का पता लगाने के लिए किया जाता है, और एक प्रतिकृति लॉग जो नोड में किए गए सभी परिवर्तनों को नोट करता है। डाइनेमो डी बी समय-समय पर इन दो डेटा संरचनाओं का स्नैपशॉट लेता है और उन्हें अमेज़न S3 में एक महीने के लिए संग्रहीत करता है जिससे इंजीनियर अपने डेटाबेस की पॉइंट-इन-टाइम पुनर्स्थापना कर सकें।


प्रत्येक विभाजन के अंदर, तीन नोड्स में से एक को लीडर नोड नामित किया गया है। सभी लेखन कार्य प्रचार से पहले लीडर नोड के माध्यम से यात्रा करते हैं, जो डाइनेमो डी बी में लेखन को सुसंगत बनाता है। अपनी स्थिति बनाए रखने के लिए, लीडर हर 1.5 सेकंड में एक दूसरे नोड को दिल की धड़कन भेजता है। यदि किसी अन्य नोड को दिल की धड़कन मिलना बंद हो जाए, तब यह एक नए नेता के चुनाव की प्रारंभिक कर सकता है। डाइनेमो डी बी नेताओं का चुनाव करने के लिए Paxos (कंप्यूटर विज्ञान) का उपयोग करता है।
डेटा हानि को रोकने के लिए, डाइनेमो डी बी में प्रतिकृति और दीर्घकालिक स्टोरेज की दो-स्तरीय बैकअप प्रणाली है।<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 में एक महीने के लिए संग्रहीत करता है जिससे इंजीनियर अपने डेटाबेस की समय में इंगित पुनर्स्थापना कर सकते है।


विभाजन और नोड्स के प्रावधान और प्रबंधन जैसे इंजीनियरिंग अतिरिक्त ्स के कारण अमेज़ॅन इंजीनियरों ने मूल रूप से डायनमो से परहेज किया।<ref name=":1" />उत्तर में, डाइनेमो डी बी टीम ने डेटाबेस को प्रबंधित करने के लिए एक सेवा बनाई जिसे वह AutoAdmin कहती है।<ref name=":3" />जब कोई नोड प्रतिक्रिया देना बंद कर देता है तब ऑटोएडमिन उसे दूसरे नोड से डेटा कॉपी करके बदल देता है। जब कोई विभाजन अपनी तीन सीमाओं (RCU, WCU, या 10GB) में से किसी एक से अधिक हो जाता है, तब AutoAdmin डेटा को और अधिक खंडित करने के लिए स्वचालित रूप से अतिरिक्त विभाजन जोड़ देगा।<ref name=":2" />
प्रत्येक विभाजन के अंदर, तीन बिंदु् में से एक को मुख्य  बिंदु नामित किया गया है। सभी लेखन कार्य प्रचार से पूर्व  मुख्य  बिंदु के माध्यम से भ्रमण  करते हैं, जो डाइनेमो डी बी में लेखन को सुसंगत बनाता है। अपनी स्थिति बनाए रखने के लिए, मुख्य बिंदु  प्रत्येक 1.5 सेकंड में एक दूसरे बिंदु को हत्कंपन प्रेषित करता है। यदि किसी अन्य बिंदु को हत्कंपन प्राप्त होना  संवृत हो जाए, तब यह एक नए मुख्य बिंदु के चयन की प्रक्रिया प्रारंभ कर सकता है। डाइनेमो डी बी मुख्य बिंदु के चयन करने के लिए पैक्सोस (कंप्यूटर विज्ञान) का उपयोग करता है।


सम्बंधित मॉडल में इंडेक्सिंग सिस्टम की तरह, डाइनेमो डी बी अनुरोध करता है कि किसी तालिका का कोई भी अद्यतन तालिका के प्रत्येक सूचकांक में दिखाई दे। डाइनेमो डी बी इसे लॉग प्रोपेमार्ग र नामक सेवा का उपयोग करके संभालता है, जो प्रत्येक नोड में प्रतिकृति लॉग की सदस्यता लेता है और आवश्यकतानुसार सूचकांकों को अतिरिक्त स्थापित , अद्यतन और विलोपन अनुरोध भेजता है।<ref name=":3" />क्योंकि सूचकांकों के परिणामस्वरूप लेखन अनुरोधों के लिए पर्याप्त प्रदर्शन हिट होता है, डाइनेमो डी बी किसी उपयोगकर्ता को किसी भी तालिका में उनमें से अधिकतम पांच की अनुमति देता है।{{citation needed|date=October 2019}}
विभाजन और बिंदु् के प्रावधान और प्रबंधन जैसे इंजीनियरिंग उपरिव्यय के कारण अमेज़ॅन इंजीनियरों ने मूल रूप से डायनमो से परिवर्जन  किया।<ref name=":1" />उत्तर में, डाइनेमो डी बी समूह  ने डेटाबेस को प्रबंधित करने के लिए एक सेवा बनाई जिसे वह ऑटो एडमिन कहती है।<ref name=":3" />जब कोई बिंदु प्रतिक्रिया देना संवृत कर देता है तब ऑटो एडमिन उसे दूसरे बिंदु से डेटा प्रतिलिपि करके परिवर्तित  देता है। जब कोई विभाजन अपनी तीन सीमाओं (आर सी यू , डब्लू सी यू, या 10 जी बी) में से किसी एक से अधिक हो जाता है, तब ऑटो एडमिन डेटा को और अधिक खंडित करने के लिए स्वचालित रूप से अतिरिक्त विभाजन जोड़ देता है।<ref name=":2" />
 
सम्बंधित आदर्श  में सूचीकरण सिस्टम की भांति, डाइनेमो डी बी अनुरोध करता है कि किसी तालिका का कोई भी अद्यतन तालिका के प्रत्येक सूचकांक में दिखाई देना है। डाइनेमो डी बी इसे लॉग प्रोपेगेटर नामक सेवा का उपयोग करके नियंत्रिता है, जो प्रत्येक बिंदु में प्रतिकृति लॉग की सदस्यता लेता है और आवश्यकतानुसार सूचकांकों को अतिरिक्त स्थापित , अद्यतन और विलोपन अनुरोध प्रेषित करता है।<ref name=":3" /> क्योंकि सूचकांकों के परिणामस्वरूप लेखन अनुरोधों के लिए पर्याप्त प्रदर्शन संपर्क होता है, डाइनेमो डी बी किसी उपयोगकर्ता को किसी भी तालिका में उनमें से अधिकतम पांच की अनुमति देता है।


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


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


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


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


==प्रदर्शन==
==प्रदर्शन==
Line 99: Line 100:


==भाषा अनिवार्य==
==भाषा अनिवार्य==
डायनेमो डीबी भाषा अनिवार्य वाली भाषाओं और फ्रेमवर्क में [[जावा (प्रोग्रामिंग भाषा)|जावा (कार्यक्रम निर्माण भाषा)]], [[जावास्क्रिप्ट]], नोड.जेएस, गो (कार्यक्रम निर्माण भाषा), सी शार्प (कार्यक्रम निर्माण भाषा)|सी# .NET फ्रेमवर्क|.नेट, [[पर्ल]], [[पीएचपी]], [[पायथन (प्रोग्रामिंग भाषा)|पायथन (कार्यक्रम निर्माण भाषा)]] सम्मिलित हैं। ), [[रूबी (प्रोग्रामिंग भाषा)|रूबी (कार्यक्रम निर्माण भाषा)]], रस्ट (कार्यक्रम निर्माण भाषा), [[हास्केल (प्रोग्रामिंग भाषा)|हास्केल (कार्यक्रम निर्माण भाषा)]], [[एरलांग (प्रोग्रामिंग भाषा)|एरलांग (कार्यक्रम निर्माण भाषा)]], डीजेंगो (वेब ​​फ्रेमवर्क), और [[ ग्रेल्स (ढांचा) |ग्रेल्स (ढांचा)]] ।<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>
डायनेमो डीबी भाषा अनिवार्य वाली भाषाओं और फ्रेमवर्क में [[जावा (प्रोग्रामिंग भाषा)|जावा (कार्यक्रम निर्माण भाषा)]], [[जावास्क्रिप्ट]], बिंदु.जेएस, गो (कार्यक्रम निर्माण भाषा), सी शार्प (कार्यक्रम निर्माण भाषा)|सी# .NET फ्रेमवर्क|.नेट, [[पर्ल]], [[पीएचपी]], [[पायथन (प्रोग्रामिंग भाषा)|पायथन (कार्यक्रम निर्माण भाषा)]] सम्मिलित हैं। ), [[रूबी (प्रोग्रामिंग भाषा)|रूबी (कार्यक्रम निर्माण भाषा)]], रस्ट (कार्यक्रम निर्माण भाषा), [[हास्केल (प्रोग्रामिंग भाषा)|हास्केल (कार्यक्रम निर्माण भाषा)]], [[एरलांग (प्रोग्रामिंग भाषा)|एरलांग (कार्यक्रम निर्माण भाषा)]], डीजेंगो (वेब ​​फ्रेमवर्क), और [[ ग्रेल्स (ढांचा) |ग्रेल्स (ढांचा)]] ।<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|AWS डाइनेमो डी बी : मद दृश्य]]
[[File:Aws-dynamodb-webconsole-item (cropped).png|thumb|AWS डाइनेमो डी बी : मद दृश्य]]


Line 240: Line 241:




==बाहरी संबंध==
==बाप्रत्येकी संबंध==
<!-- Per [[WP:ELMINOFFICIAL]], choose one official website only -->
<!-- Per [[WP:ELMINOFFICIAL]], choose one official website only -->
* {{Official website|http://aws.amazon.com/dynamodb/}}
* {{Official website|http://aws.amazon.com/dynamodb/}}

Revision as of 10:54, 17 July 2023

अमेज़ॅन डायनामो डीबी
Developer(s)अमेजन डॉट कॉम
Initial releaseJanuary 2012; 12 years ago (2012-01)[1]
Written inजावा
Operating systemरेखित-मंच
Available inअंग्रेज़ी
TypeTemplate:समतल सूची
License स्वामित्व
Websiteaws.amazon.com/dynamodb/

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

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

पृष्ठभूमि

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


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

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


अवलोकन

Web console
वेब कंसोल

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

डायनेमो डीबी सूची

डाइनेमो डी बी तालिका विषयों का एक तार्किक समूह है, जो इस तालिका में संग्रहीत डेटा का प्रतिनिधित्व करती है। डाइनेमो डी बी की एनओएसक्यूएल प्रकृति को अवलोकन करते हुए, तालिकाओं के लिए यह आवश्यक नहीं है कि तालिका के सभी मद किसी पूर्व निर्धारित योजना के अनुरूप होता है।[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 संभावना है। यह विंडो कितनी लंबी है? किसी भी संख्या में आपदाओं के कारण एक बिंदु पिछड़ सकता है, किन्तु अधिकांश स्थितियों में, तीसरा बिंदु मुख्य के मिलीसेकंड के अंदर आधुनिकतम होता है।

प्रदर्शन

क्षमता टैब, प्रवर्धन

डाइनेमो डी बी प्रदर्शन मेट्रिक्स को उजागर करता है जो उपयोगकर्ताओं को इसे सही ढंग से व्यवस्थित करने में सहायता करता है और डाइनेमो डी बी का उपयोग करने वाले अनुप्रयोगों को सुचारू रूप से चालू रखता है:

इन मेट्रिक्स को अमेज़ॅन वेब सेवाएं मैनेजमेंट कंसोल का उपयोग करके, एडब्ल्यूएस अल्प ांड लाइन इंटरफेस का उपयोग करके, या अमेज़ॅन क्लाउडवॉच के साथ एकीकृत एक निगरानी उपकरण का उपयोग करके ट्रैक किया जा सकता है।[14]


भाषा अनिवार्य

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


कोड उदाप्रत्येकण

AWS डाइनेमो डी बी : मद दृश्य

एचटीटीपी एपीआई

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

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)
}

-

यह भी देखें

संदर्भ

  1. "Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications - All Things Distributed". www.allthingsdistributed.com. 18 January 2012.
  2. Clark, Jack (2012-01-19). "अमेज़न DynamoDB क्लाउड डेटाबेस सेवा पर स्विच करता है". ZDNet. Retrieved 2012-01-21.
  3. "Fast NoSQL Key-Value Database – Amazon DynamoDB – Amazon Web Services". Amazon Web Services, Inc. (in English). Retrieved 2023-05-28.
  4. "Amazon DynamoDB Features | NoSQL Key-Value Database | Amazon Web Services". Amazon Web Services, Inc. (in English). Retrieved 2023-05-28.
  5. "What is Amazon DynamoDB? - Amazon DynamoDB". docs.aws.amazon.com. Retrieved 2023-05-28.
  6. 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. 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. 8.0 8.1 8.2 8.3 "Amazon DynamoDB के मुख्य घटक - Amazon DynamoDB". docs.aws.amazon.com. Retrieved 2023-05-28.
  9. "Amazon DynamoDB में समर्थित डेटा प्रकार और नामकरण नियम - Amazon DynamoDB". docs.aws.amazon.com. Retrieved 2023-05-28.
  10. 10.0 10.1 Gunasekara, Archie (2016-06-27). "DynamoDB विभाजन में एक गहरा गोता". Shine Solutions Group (in English). Retrieved 2019-08-03.
  11. "Amazon DynamoDB डेवलपर गाइड". AWS. August 10, 2012. Retrieved July 18, 2019.
  12. 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
  13. "शीर्ष DynamoDB प्रदर्शन मेट्रिक्स". 15 September 2015.
  14. "DynamoDB मेट्रिक्स कैसे एकत्र करें". 15 September 2015.
  15. "Amazon DynamoDB लाइब्रेरीज़, मैपर्स, और नकली कार्यान्वयन प्रचुर मात्रा में!". Amazon Web Services. 5 April 2012.


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