डेटाबेस स्केलेबिलिटी

डेटाबेस स्केलेबिलिटी संसाधनों को जोड़कर / हटाकर बदलती मांगों को संभालने के लिए डेटाबेस की क्षमता है। डेटाबेस इससे निपटने के लिए कई तकनीकों का उपयोग करता है।

इतिहास
डेटाबेस स्केलेबिलिटी का प्रारंभिक इतिहास छोटे कंप्यूटरों पर सेवा प्रदान करना था। आईबीएम सूचना प्रबंधन प्रणाली जैसी पहली डेटाबेस प्रबंधन प्रणाली बृहत अभिकलित्र पर चलती थी। इंग्रेज़ (डेटाबेस),  इन्फोर्मिक्स , साइबेस, ओरेकल आरडीबी और ओरेकल डेटाबेस सहित दूसरी पीढ़ी मिनी कंप्यूटर पर उभरी। तीसरी पीढ़ी, जिसमें dBase और Oracle (फिर से) शामिल है, पर्सनल कंप्यूटर पर चलती थी। इसी अवधि के दौरान, अधिक डेटा और अधिक मांग वाले कार्यभार को संभालने पर ध्यान दिया गया। 1980 के दशक के उत्तरार्ध में एक प्रमुख सॉफ़्टवेयर नवाचार तालिकाओं और डिस्क ब्लॉकों से व्यक्तिगत पंक्तियों तक अद्यतन लॉकिंग ग्रैन्युलैरिटी को कम करना था। इससे एक महत्वपूर्ण स्केलेबिलिटी बाधा समाप्त हो गई, क्योंकि मोटे ताले पंक्तियों तक पहुंच में देरी कर सकते थे, भले ही वे सीधे लेनदेन में शामिल न हों। पहले की प्रणालियाँ संसाधन बढ़ाने के प्रति पूरी तरह असंवेदनशील थीं। एक बार सॉफ़्टवेयर सीमाओं पर ध्यान दिए जाने के बाद, ध्यान हार्डवेयर की ओर गया। कई क्षेत्रों में नवप्रवर्तन हुआ। सबसे पहले मल्टीप्रोसेसर को सपोर्ट करना था। इसमें कई प्रोसेसरों को एक-दूसरे को अवरुद्ध किए बिना, एक साथ डेटाबेस अनुरोधों को संभालने की अनुमति देना शामिल था। यह मल्टी-कोर प्रोसेसर|मल्टी-कोर प्रोसेसर के लिए समर्थन के रूप में विकसित हुआ।

एक अधिक महत्वपूर्ण परिवर्तन में दो-चरण प्रतिबद्ध प्रोटोकॉल का उपयोग करके, साझा-कुछ भी नहीं वास्तुकला की स्थापना करके, अलग-अलग कंप्यूटरों पर संग्रहीत डेटा को प्रभावित करने के लिए वितरित लेनदेन की अनुमति देना शामिल था। बाद में, Oracle ने साझा-सब कुछ आर्किटेक्चर पेश किया, जो मल्टी-सर्वर क्लस्टर पर पूर्ण कार्यक्षमता प्रदान करता था। एक और नवाचार कई कंप्यूटरों (प्रतिकृति (कंप्यूटिंग)) पर तालिकाओं की प्रतियां संग्रहीत करना था, जिससे उपलब्धता में सुधार हुआ (मुख्य प्रणाली अनुपलब्ध होने पर भी प्रतिलिपि पर प्रसंस्करण जारी रह सकता था) और विशेष रूप से क्वेरी/विश्लेषण के लिए स्केलेबिलिटी, जिसमें अनुरोधों को रूट किया जा सकता था यदि प्राथमिक अपनी क्षमता तक पहुंच गया तो प्रतिलिपि पर। इक्कीसवीं सदी की शुरुआत में, NoSQL सिस्टम को कुछ कार्यभार के लिए रिलेशनल डेटाबेस पर प्राथमिकता मिली। प्रेरणाओं में दस्तावेज़ों और अन्य गैर-संबंधपरक डेटा प्रकारों के लिए अभी भी अधिक मापनीयता और समर्थन शामिल है। अक्सर सख्त ACID स्थिरता प्रोटोकॉल का बलिदान दिया जाता था जो अंतिम स्थिरता के पक्ष में हर समय सही स्थिरता की गारंटी देता था जिससे यह सुनिश्चित होता था कि सभी नोड्स अंततः नवीनतम डेटा लौटाएंगे। कुछ ने लेनदेन को कभी-कभी खो जाने की भी अनुमति दी, जब तक कि सिस्टम पर्याप्त रूप से कई अनुरोधों को संभाल सकता है। सबसे प्रमुख प्रारंभिक प्रणाली Google की Bigtable/MapReduce थी, जिसे 2004 में विकसित किया गया था। इसने बहु-पंक्ति लेनदेन और जुड़ाव जैसी सुविधाओं की कीमत पर, कई सर्वर फार्म में लगभग-रेखीय स्केलेबिलिटी हासिल की। 2007 में, पहला NewSQL सिस्टम, H-Store, विकसित किया गया था। NewSQL सिस्टम NoSQL स्केलेबिलिटी को ACID लेनदेन और SQL इंटरफेस के साथ संयोजित करने का प्रयास करता है।

आयाम
डेटाबेस scalability  के तीन बुनियादी आयाम हैं: डेटा की मात्रा, अनुरोधों की मात्रा और अनुरोधों का आकार। अनुरोध कई आकारों में आते हैं: लेनदेन आम तौर पर डेटा की छोटी मात्रा को प्रभावित करते हैं, लेकिन प्रति सेकंड हजारों तक पहुंच सकते हैं; विश्लेषणात्मक प्रश्न आम तौर पर कम होते हैं, लेकिन अधिक डेटा तक पहुंच सकते हैं। एक संबंधित अवधारणा लोच है, बदलते कार्यभार को पूरा करने के लिए पारदर्शी रूप से क्षमता जोड़ने और घटाने की प्रणाली की क्षमता।

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

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

हार्डवेयर
डेटाबेस स्मार्टवॉच से लेकर सुपर कंप्यूटर से लेकर कई पारदर्शी रूप से पुन: कॉन्फ़िगर करने योग्य सर्वर फ़ार्म तक की क्षमता वाले व्यक्तिगत हार्डवेयर पर चलते हैं। थ्रेड (कंप्यूटर विज्ञान) |मल्टी-थ्रेडेड कार्यान्वयन का उपयोग करके डेटाबेस को 64-बिट माइक्रोप्रोसेसर, मल्टी-कोर (कंप्यूटिंग) | मल्टी-कोर सीपीयू और बड़े सममित मल्टीप्रोसेसिंग पर चलाने के लिए लंबवत रूप से स्केल किया गया है।

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

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

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

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

क्लस्टर्ड कंप्यूटर
एक ही कंप्यूटर की सीमा से आगे बढ़ने के लिए विभिन्न प्रकार के तरीकों का उपयोग किया जाता है। हेवलेट पैकार्ड एंटरप्राइज का नॉनस्टॉप एसक्यूएल साझा नथिंग आर्किटेक्चर का उपयोग करता है जिसमें न तो डेटा और न ही मेमोरी सर्वर सीमाओं के पार साझा की जाती है। एक समन्वयक डेटाबेस अनुरोधों को सही सर्वर पर रूट करता है। यह आर्किटेक्चर निकट-रेखीय स्केलेबिलिटी प्रदान करता है।

व्यापक रूप से समर्थित एक्स/ओपन एक्सए मानक अर्ध-स्वायत्त एक्सए-अनुपालक लेनदेन संसाधनों के बीच वितरित लेनदेन को समन्वयित करने के लिए एक वैश्विक लेनदेन मॉनिटर को नियोजित करता है।

Oracle RAC, साझा-सब कुछ आर्किटेक्चर के आधार पर, स्केलेबिलिटी प्राप्त करने के लिए एक अलग मॉडल का उपयोग करता है। यह दृष्टिकोण साझा डिस्क आर्किटेक्चर दृष्टिकोण को शामिल करता है जो कई कंप्यूटरों को क्लस्टर में किसी भी डिस्क तक पहुंचने की अनुमति देता है। नेटवर्क से जुड़ा संग्रहण |नेटवर्क-अटैच्ड स्टोरेज (एनएएस) और संरक्षण क्षेत्र नियंत्रण कार्य|स्टोरेज एरिया नेटवर्क (एसएएन) स्थानीय क्षेत्र नेटवर्क और फाइबर चैनल तकनीक के साथ मिलकर ऐसे कॉन्फ़िगरेशन को सक्षम करते हैं। दृष्टिकोण में एक साझा तार्किक कैश शामिल है जिसमें सर्वर पर मेमोरी में कैश किया गया डेटा अन्य सर्वरों को डिस्क से डेटा को फिर से पढ़ने की आवश्यकता के बिना उपलब्ध कराया जाता है। अनुरोधों को पूरा करने के लिए प्रत्येक पृष्ठ को एक सर्वर से दूसरे सर्वर पर ले जाया जाता है। अपडेट आम तौर पर बहुत जल्दी होते हैं ताकि एक लोकप्रिय पेज को कई लेनदेन द्वारा थोड़े विलंब से अपडेट किया जा सके। यह दृष्टिकोण 100 सर्वर तक वाले क्लस्टर का समर्थन करने का दावा किया गया है। कुछ शोधकर्ता रिलेशनल डेटाबेस प्रबंधन प्रणाली की अंतर्निहित सीमाओं पर सवाल उठाते हैं। उदाहरण के लिए, गीगास्पेसेस  का तर्क है कि प्रदर्शन और स्केलेबिलिटी हासिल करने के लिए अंतरिक्ष-आधारित वास्तुकला की आवश्यकता है। बेस वन मुख्यधारा रिलेशनल डेटाबेस तकनीक के भीतर अत्यधिक स्केलेबिलिटी का मामला बनाता है।

यह भी देखें

 * संबंध का डेटाबेस
 * स्केलेबिलिटी