2012-07-29 15 views
350

मैं कई नोएसQL डेटाबेस और SQL डेटाबेस में आया हूं। इन डेटाबेस की ताकत और कमजोरियों को मापने के लिए अलग-अलग पैरामीटर हैं और स्केलेबिलिटी उनमें से एक है। इन डेटाबेस को क्षैतिज और लंबवत स्केलिंग के बीच क्या अंतर है?डेटाबेस के लिए क्षैतिज और लंबवत स्केलिंग के बीच अंतर

+0

http://en.wikipedia.org/wiki/Scalability को स्केलिंग को शुरू करने की पूरी अवधारणा है - अवधि _Database_ अनुभाग http करने के लिए सभी सॉफ्टवेयर/सिस्टम पर लागू होता –

+2

वेतन spaecial ध्यान : //en.wikipedia.org/wiki/Scalability#Database_scalability – user454322

+0

http://stackoverflow.com/questions/5401992/what-does-scale-horizontally-and-scale-vertically-mean –

उत्तर

620

क्षैतिज स्केलिंग का मतलब है, जबकि कार्यक्षेत्र स्केलिंग का मतलब है एक मौजूदा मशीन को और अधिक शक्ति (सीपीयू, रैम) जोड़कर कि आप पैमाने पर है कि आप संसाधनों के अपने पूल में और अधिक मशीनों जोड़कर पैमाने।

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

                  Horizontal Scaling/Vertical Scaling Visualisation

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

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

क्षैतिज स्केलिंग के लिए एक अच्छा उदाहरण कैसंड्रा, मोंगोडीबी है .. और लंबवत स्केलिंग के लिए एक अच्छा उदाहरण है MySQL - अमेज़ॅन आरडीएस (MySQL का क्लाउड संस्करण)। यह छोटे से बड़ी मशीनों से स्विच करके लंबवत पैमाने पर स्केल करने का एक आसान तरीका प्रदान करता है। इस प्रक्रिया में अक्सर डाउनटाइम शामिल होता है।

इन-मेमोरी डेटा ग्रिड GigaSpaces XAP जैसे, Coherence आदि .. अक्सर दोनों क्षैतिज और ऊर्ध्वाधर स्केलिंग बस क्योंकि वे डिस्क के लिए बाध्य नहीं कर रहे हैं के लिए अनुकूलित कर रहे हैं। बहु-कोर समर्थन के माध्यम से विभाजन और लंबवत-स्केलिंग के माध्यम से क्षैतिज-स्केलिंग।

तुम मेरे पहले पोस्ट पर इस विषय के बारे में अधिक पढ़ सकते हैं: Scale-out vs Scale-up और The Common Principles Behind the NOSQL Alternatives

+1

कोचबेस, रीक, एचबीएस, साइट्रस लीफ और इंफिनिसन सूची को थोड़ा और पूरा करने के लिए (और भी हैं)। – scalabl3

+1

@ नती शालोम यह है कि एनओएसक्यूएल डेटाबेस क्षैतिज पैमाने पर है? –

+0

क्या क्षैतिज रूप से MySQL स्केल करना संभव है - शायद कुछ एक्सटेंशन या टूल के साथ? –

6

हाँ क्षैतिज स्केलिंग अधिक मशीनों को जोड़ने का मतलब है, लेकिन यह भी संकेत मिलता है कि मशीनों क्लस्टर में बराबर हैं। MySQL प्रतिकृतियों के उपयोग के माध्यम से, पढ़ने के डेटा के संदर्भ में क्षैतिज पैमाने पर स्केल कर सकता है, लेकिन एक बार यह सर्वर मेम/डिस्क की क्षमता तक पहुंचने के बाद, आपको सर्वरों में डेटा को शेड करना शुरू करना होगा। यह तेजी से अधिक जटिल हो जाता है। प्रायः प्रतिलिपि में लगातार डेटा रखने में एक समस्या होती है क्योंकि प्रतिकृति दर अक्सर डेटा परिवर्तन दरों को बनाए रखने में धीमी होती है।

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

अभिनय की दृष्टि से, आप एक उत्कृष्ट सिस्को बेंचमार्क देख सकते हैं: http://horicky.blogspot.com/2012/07/couchbase-architecture.html

6

एक अतिरिक्त वास्तुकला कि उल्लेख नहीं किया गया था नहीं है - एसक्यूएल आधारित: http://blog.couchbase.com/understanding-performance-benchmark-published-cisco-and-solarflare-using-couchbase-server

यहाँ काउचआधारित वास्तुकला के बारे में एक महान ब्लॉग पोस्ट है डेटाबेस सेवाएं जो मैन्युअल शेरिंग की जटिलता के बिना क्षैतिज स्केलिंग सक्षम करती हैं। ये सेवाएं पृष्ठभूमि में शेडिंग करती हैं, इसलिए वे आपको एक पारंपरिक SQL डेटाबेस चलाने और स्केल आउट करने में सक्षम बनाती हैं जैसे आप मोंगोडीबी या कॉच डीबी जैसे नोएसक्यूएल इंजन के साथ करेंगे। MySQL के लिए PostgreSQL और Xeround के लिए मैं जिन सेवाओं से परिचित हूं, वे EnterpriseDB हैं। मैंने ज़ीराउंड द्वारा post में गहराई से देखा जो बताता है कि एसक्यूएल डेटाबेस पर स्केल-आउट क्यों मुश्किल है और वे इसे अलग तरीके से कैसे करते हैं - नमक के अनाज के साथ इसका इलाज करें क्योंकि यह एक विक्रेता पोस्ट है। विकिपीडिया के Cloud Database entry को भी देखें, एसक्यूएल बनाम नोएसक्यूएल और सेवा बनाम स्वयं-होस्टेड, विक्रेताओं की एक सूची और प्रत्येक संयोजन के लिए स्केलिंग विकल्पों की एक अच्छी व्याख्या है। ;)

+0

एक और डेटा बिंदु के रूप में, मैं क्लस्टरिक्स से एक और विक्रेता पोस्ट सबमिट करता हूं: http://www.clustrix.com/blog/bid/259950/scale-up-vs-scale-out – clieu

+0

अमेज़ॅन आरडीएस के बारे में कैसे? –

+0

मुझे पता है कि यह एक पुरानी पोस्ट है ... बस कुछ अपडेट .. जेराउंड ने दुकान बंद कर दी है। PostreSQL के क्षैतिज स्केलिंग विकल्प वास्तव में क्षैतिज स्केलिंग विकल्प नहीं हैं - वे केवल डीबी प्रतिकृति विकल्प हैं जहां आप प्रतिकृति डीबी में कुछ परिचालनों को जन्म दे सकते हैं। –

5

पारंपरिक संबंधपरक डेटाबेस जहां क्लाइंट/सर्वर डेटाबेस सिस्टम के रूप में डिज़ाइन किया गया। उन्हें क्षैतिज रूप से स्केल किया जा सकता है लेकिन ऐसा करने की प्रक्रिया जटिल और त्रुटि प्रवण होती है। न्यूएसक्यूएल डेटाबेस जैसे न्यूओडीबीबी मेमोरी-केंद्रित वितरित डेटाबेस सिस्टम हैं जो पारंपरिक आरडीबीएमएस के एसक्यूएल/एसीआईडी ​​गुणों को बनाए रखते हुए क्षैतिज रूप से स्केल करने के लिए डिज़ाइन किए गए हैं।

NuoDB पर अधिक जानकारी के लिए, http://goo.gl/uzLIWB पर अपने तकनीकी श्वेतपत्र को पढ़ें।

25

क्षैतिज स्केलेबिलिटी कई हार्डवेयर या सॉफ्टवेयर इकाइयों को जोड़कर क्षमता बढ़ाने की क्षमता है ताकि वे एक लॉजिकल यूनिट के रूप में काम कर सकें।

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

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

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

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

14

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

लोड-बैलेंसर क्लस्टर में विभिन्न बैक-एंड सिस्टम/मशीन/नोड्स के बीच उपयोगकर्ता अनुरोध (लोड) वितरित करने के लिए ज़िम्मेदार है। इनमें से प्रत्येक बैक-एंड मशीन आपके सॉफ़्टवेयर की प्रतिलिपि चलाती है और इसलिए अनुरोधों को सर्विस करने में सक्षम होती है। यह बैलेंसर लोड करने वाले विभिन्न कार्यों में से एक है। एक और बहुत आम जिम्मेदारी "स्वास्थ्य जांच" है जहां लोड बैलेंसर "पिंग-इको" प्रोटोकॉल का उपयोग करता है या सभी सर्वरों के साथ दिल की धड़कन संदेश का आदान-प्रदान करता है ताकि यह सुनिश्चित हो सके कि वे ठीक हो रहे हैं और ठीक चल रहे हैं।

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

अनुरोध-प्रतिक्रिया भी 2 अलग अलग तरीकों से किया जा सकता है:

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

  2. लोड बैलेंसर सर्वर मशीन से आने वाली प्रतिक्रियाओं के लिए मध्यस्थ के रूप में कार्य नहीं करता है - इस मामले में, सर्वर को लोड-बैलेंसर से अनुरोध प्राप्त होने के बाद, यह भार संतुलन को छोड़ देता है और इसे सीधे प्रतिक्रियाओं को संचारित करता है ग्राहक।

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

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

  1. क्या ऐसा डिज़ाइन हमारी प्रदर्शन आवश्यकताओं को संबोधित करेगा?

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

  3. क्या ऐसा डिज़ाइन हमारी उपलब्धता आवश्यकताओं को संबोधित करेगा? क्या प्रणाली गलती-सहिष्णु है? यदि हां, तो इसकी डिग्री क्या है?

  4. क्या यह डिज़ाइन विश्वसनीय है? क्या यह शुद्धता को प्रभावित करता है? हमें यह नहीं भूलना चाहिए कि 100% शुद्धता किसी भी प्रणाली का एक निहित लक्ष्य है।

  5. क्या हम वास्तव में हमारे स्केलेबिलिटी लक्ष्यों को पूरा कर रहे हैं? अल्पकालिक या तात्कालिक लोगों को प्राप्त किया जा सकता है, लेकिन लंबे समय तक क्या होने जा रहा है?

इन सभी प्रकार की आवश्यकताओं के साथ उनके साथ मात्रात्मक उपाय होना चाहिए।

हमें फिर खुद को पूछताछ, प्रोटोटाइप विकसित करने और डिजाइन को परिष्कृत करके महत्वपूर्ण डिजाइन निर्णय लेना चाहिए।

  1. सबसे पहले, केवल दृष्टिकोण का उपयोग कर रहा है लोड संतुलन लोड वितरित करने के लिए और क्षैतिज प्रणाली पैमाने पर?

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

  3. बैक-एंड नोड्स एक-दूसरे के साथ संवाद करते हैं या नहीं, क्या हमारे सिस्टम को सभी नोड्स में लगातार डेटा बनाए रखने की आवश्यकता है? हम किस स्तर की स्थिरता परवाह करते हैं? क्या यह किसी भी समय, सभी नोड्स में डेटा सुसंगत होना चाहिए। या बाद में कुछ बिंदु, सभी नोड्स में डेटा सुसंगत रहेगा। यदि हां, तो यह "बाद में" क्या है? सभी नोड्स कब और कैसे एक सतत स्थिति में अभिसरण करते हैं? हम सभी नोड्स में संचालन के "कुल-आदेश" को कैसे प्राप्त करेंगे? क्या हमारे पास वैश्विक घड़ी है? अगर हम हर नोड की स्थानीय घड़ी पर भरोसा कर रहे हैं, तो हम सभी मशीनों के घड़ियों को कैसे सिंक्रनाइज़ करते हैं। वे आसानी से वापसी कर सकते हैं या ऑर्डर घड़ी से बाहर की मशीन क्लस्टर में शामिल हो सकती है। नतीजतन, हम नवीनतम डेटा को अनदेखा कर सकते हैं, और पुराने/पुराने डेटा को नवीनतम के रूप में मान सकते हैं।
  4. हमें किस क्लस्टर सेटअप के लिए डिज़ाइन करना है? क्या यह एक "प्रतिकृति" क्लस्टर है, जहां प्रत्येक नोड पर डेटा कुछ या हर दूसरे नोड में दोहराया जाता है। पूर्व के मामले में, प्रतिकृति कारक क्या है, और हम इसे कैसे तय करते हैं? या यह एक शापित क्लस्टर है जहां क्लस्टर को विभिन्न shards या इकाइयों में बांटा गया है। एक शार्ड नोड्स का एक नामित समूह है। प्रत्येक शार्ड डेटा के एक विशेष विभाजन का ख्याल रखता है। शार्ड्स में डेटा दोहराया नहीं जाता है, लेकिन प्रत्येक शर्ड खुद के भीतर प्रतिकृति रणनीति अपना सकता है। जो भी वितरित सिस्टम हम डिजाइन करते हैं, वह आदर्श रूप से उपरोक्त और कई अन्य समान प्रश्नों का उत्तर देने में सक्षम होना चाहिए।

यह सब एक वितरित प्रणाली को डिजाइन और कार्यान्वित करने के लिए इतना रोचक और चुनौतीपूर्ण बनाता है। अधिक प्रसंस्करण शक्ति जोड़ कर अधिक भंडारण अधिक स्मृति आदि सारांश को जोड़ कर:

-

कार्यक्षेत्र स्केलिंग को "पैमाने अप" दृष्टिकोण एक मशीन की क्षमता में वृद्धि करने का प्रयास है करने के लिए भेजा

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

जैसा कि आप अब तक समझ चुके होंगे, क्लस्टर सेटअप, प्रबंधन, और रखरखाव लागत और जटिलताओं के रूप में क्षैतिज स्केलिंग ओवरहेड के साथ आता है। डिजाइन तेजी से जटिल और प्रोग्रामिंग मॉडल में परिवर्तन हो जाता है।

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

4

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

लेकिन दृष्टिकोण नोएसक्यूएल डेटाबेस (जैसे मोंगोडब, कॉच डीबी या आईबीएम क्लाउडेंट) से अलग है यह है कि डेटा शेरिंग क्षैतिज स्केलिंग का हिस्सा नहीं है। क्षैतिज स्केलिंग के दौरान noSQL डेटाबेस डेटा को श्रेय दिया जाता है।

2

संसाधनों को बढ़ाने वाले स्केलिंग की आवश्यकता से शुरू करते हैं ताकि आपका सिस्टम अब पहले से अधिक अनुरोधों को संभाल सके।

जब आपको पता चलता है कि आपका सिस्टम धीमा हो रहा है, और अनुरोधों की वर्तमान संख्या को संभालने में असमर्थ है, तो आपको सिस्टम को स्केल करने की आवश्यकता है।

यह आपको दो विकल्प प्रदान करता है, या तो आप उस सर्वर में संसाधनों को बढ़ाते हैं जिनका आप वर्तमान में उपयोग कर रहे हैं i.e रैम, सीपीयू, जीपीयू और अन्य संसाधनों की मात्रा बढ़ाएं। इसे लंबवत स्केलिंग के रूप में जाना जाता है।

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

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

आशा है कि आप प्रणाली

संबंधित मुद्दे