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