7

स्पष्ट रूप से बिगटेबल आर्किटेक्चर के कारण को रिलेशनल डेटाबेस स्केलिंग में कठिनाई के साथ करना पड़ता है जब आप बड़ी संख्या में सर्वरों से निपट रहे हैं जिन्हें Google को सौदा करना है।संबंधपरक डेटाबेस के किस पहलू से उनके लिए Google App Engine जैसी सेवाओं पर पर्याप्त पैमाने पर स्केल करना मुश्किल हो जाता है?

लेकिन तकनीकी रूप से बोलने से डेटाबेस के संबंध में संबंधों के लिए वास्तव में क्या मुश्किल हो जाती है?

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

उत्तर

3

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

बिगटेबल जैसे गैर-रिलेशनल डेटाबेस द्वारा ली गई रणनीति रिवर्स है: अधिक महंगे लिखने की लागत पर, अधिक आसानी से पढ़ने के लिए denormalize।

+0

मैं मानता हूं कि अधिकांश वेब ऐप्स में उपयोगकर्ता-इनपुट या डेटा के ऐप-अपडेटिंग से अधिक पढ़ने शामिल होते हैं। लेकिन मुझे समझ में नहीं आता कि आप क्या कहेंगे जब लिखते हैं कि सामान्यीकृत आरडीबीएमएस में लिखना आसान है (काम के मामले में) "? मुझे लगता है कि ऐप इंजन डेटास्टोर काम के मामले में आसान है क्योंकि एक अनूठी कुंजी प्रत्येक इकाई की पहचान करती है और अद्यतन डेटास्टोर के शब्दकोश-जैसे चरित्र की वजह से डालने के बराबर होता है। एक शब्दकोश से डालने और लाने से जितना आसान हो जाता है उतना आसान होता है, मुझे लगता है। – pacman

+0

@pacman: आप वास्तव में किए गए सभी कार्यों को भूल रहे हैं। सूचकांक डाटास्टोर का बड़ा राजा है। जब आप डेटास्टोर में कोई इकाई जोड़ते हैं, तो यह डेटा की प्रतिलिपि बनाने की एक बड़ी मात्रा में काम करता है ताकि यदि आप कोई संपत्ति प्राप्त करना चाहते हैं तो आप इतनी जल्दी कर सकते हैं। यह मूल रूप से प्रत्येक संपत्ति के लिए इंडेक्स लिखता है, प्रत्येक इकाई पर, दो बार (एसीएस और अवरोही), आपके द्वारा संग्रहीत सभी डेटा के लिए (शायद नए बड़े ब्लॉब्स नहीं, निश्चित नहीं)। यह लिखने के लिए इतना लंबा लगता है, लेकिन एक दिमागी दबाने वाले तराजू पर तेजी से पढ़ने की अनुमति देता है। मैं एक अच्छा ऐपइंजिन पुस्तक प्राप्त करने का सुझाव दूंगा, क्योंकि GAE के लिए डिज़ाइन करते समय यह महत्वपूर्ण है। –

6

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

एक अच्छी तरह से सेट अप आरडीबीएमएस सर्वर रैम में हॉट-पेजों पर कम से कम भौतिक डिस्क या नेटवर्क I/O के साथ इसके अधिकांश प्रश्नों का प्रदर्शन करेगा।

यदि आप नेटवर्क I/O से बाधित हैं, तो संबंधपरक डेटा के लाभ कम हो जाते हैं।

+0

धन्यवाद! बहुत स्पष्ट मूल टिप्पणी हटा दी गई। –

0

बताया गया मुख्य कारण भौतिक स्थान और नेटवर्क IO है। इसके अतिरिक्त, यहां तक ​​कि बड़े निगम डेटा के एक अंश के साथ सौदा करते हैं जो खोज इंजन से निपटते हैं।

मानक डेटाबेस पर सूचकांक के बारे में सोचें, शायद कुछ फ़ील्ड ... खोज इंजनों को बड़े टेक्स्ट फ़ील्ड पर तेज़ टेक्स्ट खोज की आवश्यकता है।

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

  • कोई संबंधित समस्या नहीं^_^