Google किस डेटाबेस का उपयोग करता है?


370

क्या यह Oracle या MySQL है या कुछ ऐसा जो उन्होंने खुद बनाया है?


187
वह Google का उपयोग तब करेगा जब वह यह जानना चाहेगा कि डेटाबेस स्टैक ओवरफ्लो का उपयोग क्या है
फ्लायबीवायर

340
अरे, उसे मत मारो, मैं यहाँ एक गूगल खोज योग्य से समाप्त हो गया।
शॉन मैक्लेन

141
क्या यह और विडंबना है कि Google पर "Google का डेटाबेस" खोजने का शीर्ष परिणाम अब यह पृष्ठ है, जिस पर पहली टिप्पणी Google का उपयोग करना है?
पैट्रिक सज्जापस्की

89
@Patrick Szalapski एक ढेर अतिप्रवाह स्थिति की तरह लगता है।
थॉमस

5
खोज करने से पहले मैं सोच रहा था कि क्या Google मुझे सही उत्तर देगा लेकिन यहाँ हम चलते हैं: P
अब्दुल सबूर

जवाबों:


581

बड़े मेज

संरचित डेटा के लिए एक वितरित संग्रहण प्रणाली

बिगटेबल संरचित डेटा को प्रबंधित करने के लिए एक वितरित स्टोरेज सिस्टम (Google द्वारा निर्मित) है जो एक बहुत बड़े आकार के पैमाने के लिए डिज़ाइन किया गया है: हजारों कमोडिटी सर्वरों पर डेटा की पेटबाइट्स।

बिगटेबल में Google स्टोर डेटा पर कई परियोजनाएं, जिनमें वेब इंडेक्सिंग, Google अर्थ और Google वित्त शामिल हैं। ये अनुप्रयोग डेटा आकार (URL से वेब पेज से लेकर सैटेलाइट इमेजरी तक) और विलंबता आवश्यकताओं (बैकएंड बल्क प्रोसेसिंग से लेकर रियल-टाइम डेटा सर्विंग) दोनों के संदर्भ में Bigtable पर बहुत अलग-अलग माँग रखते हैं।

इन विभिन्न मांगों के बावजूद, बिगटेबल ने इन सभी Google उत्पादों के लिए एक लचीला, उच्च-प्रदर्शन समाधान प्रदान किया है।

कुछ सुविधाएं

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

आर्किटेक्चर

BigTable एक रिलेशनल डेटाबेस नहीं है। यह जॉइन का समर्थन नहीं करता है और न ही यह रिच एसक्यूएल जैसे प्रश्नों का समर्थन करता है। प्रत्येक तालिका एक बहुआयामी विरल मानचित्र है। टेबल्स में पंक्तियाँ और कॉलम होते हैं, और प्रत्येक सेल में एक समय टिकट होता है। विभिन्न समय टिकटों के साथ एक सेल के कई संस्करण हो सकते हैं। समय की मोहर इस वेब पेज के "एन 'सलेक्ट' एन 'जैसे ऑपरेशंस के लिए अनुमति देती है" या "उन कोशिकाओं को हटा दें जो किसी विशिष्ट तिथि / समय से अधिक पुरानी हैं।"

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

टेबल को अपरिवर्तनीय SSTables और लॉग की एक पूंछ (प्रति मशीन एक लॉग) के रूप में संग्रहीत किया जाता है। जब कोई मशीन सिस्टम मेमोरी से बाहर निकलती है, तो वह Google स्वामित्व संपीडन तकनीकों (BMDiff और Zippy) का उपयोग करके कुछ टैबलेट को संपीड़ित करती है। छोटी-छोटी कंपार्टमेंट्स में केवल कुछ टैबलेट शामिल होते हैं, जबकि प्रमुख कंपार्टमेंट्स में संपूर्ण टेबल सिस्टम शामिल होता है और हार्ड-डिस्क स्थान को पुनर्प्राप्त करता है।

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

कार्यान्वयन

बिगटेबल Google फ़ाइल सिस्टम पर बनाया गया है (GFS) , जिसका उपयोग लॉग और डेटा फ़ाइलों के लिए बैकिंग स्टोर के रूप में किया जाता है। जीएफएस SSTables के लिए विश्वसनीय भंडारण प्रदान करता है, जो तालिका डेटा को बनाए रखने के लिए उपयोग किया जाने वाला एक Google-स्वामित्व फ़ाइल प्रारूप है।

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

Bigtable सिस्टम में तीन प्राथमिक सर्वर प्रकार के हित हैं:

  1. मास्टर सर्वर: टैबलेट सर्वर को टैबलेट प्रदान करते हैं, जहां टैबलेट स्थित हैं, वहां ट्रैक करते हैं और आवश्यकतानुसार कार्यों को पुनर्वितरित करते हैं।
  2. टैबलेट सर्वर: टैबलेट्स और स्प्लिट टैबलेट्स के लिए रीड / राइट रिक्वेस्ट को हैंडल करते हैं जब वे साइज लिमिट (आमतौर पर 100 एमबी - 200 एमबी) से अधिक हो जाते हैं। यदि एक टैबलेट सर्वर विफल हो जाता है, तो एक 100 टैबलेट सर्वर प्रत्येक पिक 1 नया टैबलेट और सिस्टम ठीक हो जाता है।
  3. लॉक सर्वर: चब्बी वितरित लॉक सेवा के उदाहरण। BigTable के भीतर बहुत सी कार्रवाइयों में लेखन के लिए गोलियाँ खोलने सहित तालों के अधिग्रहण की आवश्यकता होती है, यह सुनिश्चित करते हुए कि एक समय में एक से अधिक सक्रिय मास्टर नहीं हैं, और अभिगम नियंत्रण जाँच।

Google के शोध पत्र से उदाहरण:

वैकल्पिक शब्द

एक उदाहरण तालिका का एक टुकड़ा जो वेब पृष्ठों को संग्रहीत करता है। पंक्ति नाम एक उल्टा URL है । सामग्री स्तंभ परिवार में पृष्ठ सामग्री होती है , और लंगर स्तंभ परिवार में पृष्ठ को संदर्भित करने वाले किसी भी एंकर का पाठ होता है । सीएनएन के मुख पृष्ठ पर, दोनों स्पोर्ट्स इलस्ट्रेटेड और मेरी देखो घर पृष्ठों से संदर्भित तो पंक्ति कॉलम नामित होता है anchor:cnnsi.comऔर anchor:my.look.ca। प्रत्येक एंकर सेल का एक संस्करण है ; सामग्री स्तंभ है तीन संस्करणों टाइम स्टांप पर, t3, t5, और t6

एपीआई

बिगटेबल के लिए विशिष्ट ऑपरेशन टेबल और कॉलम परिवारों का निर्माण और विलोपन हैं, एक पंक्ति से डेटा लिखना और कॉलम हटाना। BigTable एक एपीआई में डेवलपर्स के लिए यह कार्य प्रदान करता है। लेन-देन पंक्ति स्तर पर समर्थित हैं, लेकिन कई पंक्ति कुंजियों में नहीं।


यहां शोध पत्र की पीडीएफ के लिए लिंक दिया गया है

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


4
क्या किसी को पता है कि यह खरोंच से बनाया गया था या किसी उत्पाद पर आधारित था? मैंने सुना है कि मुझे याद नहीं है कि Google ने Oracle का एक बार उपयोग किया था, लेकिन उन्होंने इसे छोड़ दिया क्योंकि उन्हें कुछ संशोधनों की आवश्यकता थी जो कि Oracle नहीं करेंगे और न ही उन्हें करने देंगे। मैं लिंक पाने की कोशिश करूंगा।
ऑस्कररेज़

5
यह उनके अन्य मुख्य दक्षताओं (वेब ​​सर्वर, जीएफएस, ...) की तरह ही है।
मैट जे

5
मैं कंप्रेशन एल्गोरिदम (BMDiff और Zippy) के बारे में जानकारी ढूंढ रहा था और पाया कि अब Zippy को Snappy कहा जाता है और यह Google कोड में प्रकाशित हुआ है: code.google.com/p/snappy
helios

7
अब वे Spanner,
BigTable

तो, यह nosql डेटाबेस जैसे Mongodb या Marklogic के समान दिखता है।
स्टिकओवरफ्लो


32

Spanner , Google का विश्व स्तर पर वितरित रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है, जो BigTable का उत्तराधिकारी है । Google का दावा है कि यह एक शुद्ध संबंधपरक प्रणाली नहीं है क्योंकि प्रत्येक तालिका में एक प्राथमिक कुंजी होनी चाहिए।

यहाँ कागज का लिंक दिया गया है।

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

Google द्वारा आविष्कार किया गया एक और डेटाबेस है मेगास्टोर है । यहाँ सार है:

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


यह शर्म की बात है कि स्पैनर बंद स्रोत परियोजना है। विवरण के अनुसार, मुझे अपनी परियोजनाओं के लिए भी उपयोग करना अच्छा लगेगा।
मिकको रेंटालिनेन

2
@ मिक्को रेंटालैनेन आप अपाचे हडोप इकोसिस्टम या
कॉकरोचडीबी

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

1
स्पैनर 2017 से Google क्लाउड पर उपयोग करने के लिए सभी के लिए उपलब्ध है: Cloud.google.com/spanner
Miscreant

19

जैसा कि दूसरों ने उल्लेख किया है, Google BigTable नामक एक घरेलू समाधान का उपयोग करता है और उन्होंने वास्तविक दुनिया में इसका वर्णन करते हुए कुछ कागजात जारी किए हैं।

अपाचे लोगों के पास इन पत्रों में प्रस्तुत विचारों का एक कार्यान्वयन है जिसे HBase कहा जाता है । HBase बड़ी Hadoop परियोजना का हिस्सा है जो उनकी साइट के अनुसार "एक सॉफ्टवेयर प्लेटफ़ॉर्म है जो किसी को आसानी से लिखने और बड़ी मात्रा में डेटा को संसाधित करने वाले एप्लिकेशन चलाने देता है।" कुछ बेंचमार्क काफी प्रभावशाली हैं। उनकी साइट http://hadoop.apache.org पर है


लिंक ४०४ नहीं मिला है
शिवम झा

13

हालाँकि Google अपने सभी मुख्य अनुप्रयोगों के लिए BigTable का उपयोग करता है, लेकिन वे अन्य (शायद मामूली) ऐप्स के लिए भी MySQL का उपयोग करते हैं।


3
@ smoothdeveloper लिंक मृत है; यहां एक संग्रहीत प्रति पढ़ें: web.archive.org/web/20071102233627/http://xooglers.blogspot.com/…
josh3736

9

और यह शायद यह भी जानना आसान है कि बिगटेबल एक रिलेशनल डेटाबेस (जैसे MySQL) नहीं है, लेकिन एक विशाल (वितरित) हैश टेबल है जिसमें बहुत अलग विशेषताएं हैं। आप Google AppEngine पर BigTable के साथ (सीमित संस्करण) खेल सकते हैं प्लेटफॉर्म ।

ऊपर उल्लिखित हडोप के आगे कई अन्य कार्यान्वयन हैं जो बिगटेबल (स्केलेबिलिटी, उपलब्धता) के समान समस्याओं को हल करने का प्रयास करते हैं। मैं एक अच्छा ब्लॉग पोस्ट कल उनमें से ज्यादातर लिस्टिंग देखा यहाँ


6

Google मुख्य रूप से Bigtable का उपयोग करता है।

बिगटेबल संरचित डेटा को प्रबंधित करने के लिए एक वितरित भंडारण प्रणाली है जिसे बहुत बड़े आकार के पैमाने पर डिज़ाइन किया गया है।

अधिक जानकारी के लिए, यहां से दस्तावेज़ डाउनलोड करें

Google अपने कुछ अनुप्रयोगों के लिए Oracle और MySQL डेटाबेस का भी उपयोग करता है।

किसी भी अधिक जानकारी आप जोड़ सकते हैं बहुत सराहना की है।


17
Google also use Oracle- संदर्भ की जरूरत है।
उपयोगकर्ता

@user cloud.google.com/sql/docs ? यदि डेवलपर्स MySQL का उपयोग कर सकते हैं, तो Google को कम से कम, MySQL और Bigtable के साथ एक "डेटाबेस अनुवादक" बनाया जाना चाहिए।

1

Google सेवाओं में एक बहुभाषाविद दृढ़ता वास्तुकला है। BigTable अपनी अधिकांश सेवाओं जैसे YouTube, Google Search, Google Analytics आदि द्वारा लीवरेज्ड है। खोज सेवा ने शुरुआत में अपने अनुक्रमण बुनियादी ढांचे के लिए MapReduce का उपयोग किया था, लेकिन बाद में कैफीन रिलीज़ के दौरान BigTable में परिवर्तित कर दिया गया।

Google क्लाउड डेटास्टोर में आंतरिक और बाहरी दोनों उपयोगकर्ताओं का सामना करने वाले Google में 100 से अधिक अनुप्रयोग हैं। जीमेल, पिकासा, Google कैलेंडर, Android Market और AppEngine जैसे एप्लिकेशन क्लाउड डेटास्टोर और मेगास्टोर का उपयोग करते हैं।

Google ट्रेंड स्ट्रीम प्रोसेसिंग के लिए MillWheel का उपयोग करता है। Google विज्ञापन ने शुरुआत में MySQL का उपयोग किया था बाद में F1 DB में स्थानांतरित हो गया - एक कस्टम लिखित वितरित रिलेशनल डेटाबेस। Youtube MySQL को Vitess के साथ उपयोग करता है। Google Google फ़ाइल सिस्टम की मदद से कमोडिटी सर्वरों में डेटा का संग्रहण करता है।

स्रोत: Google डेटाबेस: Google सेवा स्टोर पेटाबाइट-एक्साबाइट स्केल डेटा कैसे करते हैं?

YouTube डेटाबेस - यह स्टोरेज स्पेस से बाहर निकलने के बिना कितने वीडियो स्टोर करता है?

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.