थॉमस CARRIERO: मैं थॉमस Carriero हूँ. मैं ड्रॉपबॉक्स पर एक सॉफ्टवेयर इंजीनियर हूँ. एलेक्स Allain: मैं एलेक्स Allain हूँ. मैं यहाँ ड्रॉपबॉक्स पर एक इंजीनियर हूँ. थॉमस CARRIERO: हाँ, मैं था वास्तव में CS50 के लिए पहले सिर TF डेविड मालिन वर्ग में पदभार संभाल लिया है. मैं पहले से ही अध्यापन किया गया था दो सत्रों के लिए CS50 कौन था माइक स्मिथ के साथ वहाँ पूर्व प्रोफेसर. एलेक्स Allain: तो मैं वास्तव में नहीं किया CS50 ले, लेकिन मैं TF यह दो बार किया था. एक बार एक नियमित TF के रूप में, और फिर अपने वरिष्ठ वर्ष मैं वास्तव में के सिर TF था बहुत मज़ा था जो CS50,. थॉमस CARRIERO: तो डेविड बाहर पहुंचे जब मेरे पास करने के बारे में CS50 उपकरण में ड्रॉपबॉक्स, मैं वास्तव में उत्साहित थी क्योंकि हम वास्तव में एक लिनक्स ग्राहक है, इसलिए हमारे उपयोगकर्ताओं के अधिकांश या तो उपयोग Windows या Macintosh क्लाइंट, लेकिन लिनक्स, Macintosh, और Windows ग्राहकों को सभी वास्तव में बहुत समान हैं. तो क्या हम किया था कि हम पहले से स्थापित है CS50 में ड्रॉपबॉक्स लिनक्स ग्राहक उपकरण, और यह बस की तरह चलता है हमारे अन्य लिनक्स उपयोगकर्ताओं के सभी. एलेक्स Allain: तो ड्रॉपबॉक्स काम करता है जिस तरह से यह है कई अलग अलग पर एक ग्राहक के रूप में चलाता है ऑपरेटिंग सिस्टम और उपकरणों. ड्रॉपबॉक्स डेस्कटॉप क्लाइंट है सबसे अच्छी तरह से जाना जाता है में से एक, और सबसे दिलचस्प में से एक. थॉमस CARRIERO: तो ड्रॉपबॉक्स मूल रूप से सभी फाइलें ले जाता है आप फ़ोल्डर में डाल दिया है और यह हिस्सा है कि उन फ़ाइलों को चार मेगाबाइट मात्रा में. तो हम एक 100 मेगाबाइट ले जाऊँगा पीडीएफ फाइल और हम करेंगे हिस्सा 25 चार मेगाबाइट मात्रा में यह. उन हिस्सा तो एन्क्रिप्टेड और कर रहे हैं फिर हम अपने ब्लॉक सर्वरों के लिए भेजते हैं. एलेक्स Allain: ब्लॉक सर्वर हैं ब्लॉक को खुद के लिए भंडारण, और इसलिए प्रत्येक ब्लॉक में संग्रहीत किया जाता है डेटा के साथ ब्लॉक सर्वर और कि ब्लॉक के एक शॉ 356 हैश. यही कारण है कि आदिम एक बहुत ही बुनियादी एन्क्रिप्शन है कि कुछ समझ में, सारांश, एक बहुत ही अनूठे तरीके से डेटा कि उस डेटा के लिए अद्वितीय है. आप अपलोड कर सकते हैं सभी को एक बार पूरी फाइल, यदि आप करते हैं, लेकिन यह पता चला है कि, वास्तव में बड़ी फ़ाइलों को ले अपलोड करने के लिए एक बहुत लंबे समय है, और अगर आप एक विफलता है, तुम भाग्य से बाहर रहे हैं और आप इसे पुनः आरंभ करने के लिए है. क्या हम तो हम बता है हमारी प्रणाली में एक और सर्वर, और क्या हम मेटाडाटा कॉल सर्वर, कि हे यह एक फ़ाइल है और यह से बना है ब्लॉकों की सूची निम्नलिखित. और हम हैश को पारित उन ब्लॉकों की पहचान करने के लिए बजाय पुन: अपलोड पूरे ब्लॉक. metaserver तो ब्लॉक सर्वर की जाँच करता है, ब्लॉक हैं सुनिश्चित करता है. वे सही कर रहे हैं. सब कुछ अच्छा है. थॉमस CARRIERO: जब हम मूल रूप से डाउनलोड करना चाहते हैं इंटरनेट से फाइल, चलो कहते हैं, हम पिछले metaserver को कहता हूँ पहला, अरे आप मुझे बता सकते हैं इस फाइल के स्थित है, जहां के बारे में? और metaserver कहते हैं, ओह इस फाइल की इच्छा वास्तव में 25 चार मेगाबाइट हिस्सा, और यहाँ वे कर रहे हैं. और फिर हम एक ब्लॉक सर्वर जाओ और हूँ वास्तव में उन मात्रा में से प्रत्येक डाउनलोड. और फिर हम पुनर्निर्माण हूँ फ़ाइल वहाँ से, और फिर हम डाउनलोड शुरू करेंगे. सौदों की हां, तो ड्रॉपबॉक्स पैमाने के साथ मूल रूप से बहुत से, बहुत आक्रामक sharding. एलेक्स Allain: जब आप Sharding है अपने शुरू में सभी उपयोगकर्ताओं को ले या आपकी कंपनी और शायद वे एक डेटाबेस में हुआ करता था, और कहा कि जब तक आप महान काम करता है प्रयोक्ताओं की एक निश्चित संख्या में मारा. और वास्तव में आप क्या चाहते हैं ऐसा करने के लिए कोई रास्ता मिल गया है दो भर में उन विभाजित करने के लिए डेटाबेस, या शायद दो से अधिक. आप कर सकते हैं कि आदर्श रूप में, पर्याप्त दुनिया में हर उपयोगकर्ता है. और इसलिए तुम, ठीकरा जब क्या तुम हो तुम है निर्णय लेने का कोई रास्ता खोजने जो डेटाबेस जाना उस करने की आवश्यकता नहीं है एक केंद्रीय निर्देशिका मार. या हो सकता है कि यह एक बहुत जल्दी है सस्ते देखो केंद्रीय निर्देशिका. थॉमस CARRIERO: हम कभी नहीं एक डेटाबेस में संग्रहीत सब कुछ, कि लगभग है क्योंकि पैमाने पर करने जा रहा है कभी नहीं. तो बजाय, हम क्या करेंगे सब ले जाता है जानकारी है कि सभी फ़ाइलें मेटाडाटा पर जमा हो जाती है, सैकड़ों भर ठीकरा या तार्किक डेटाबेस के हजारों. और इसका मतलब है कि हम एक है जब एक उपयोगकर्ता की जानकारी के लिए अनुरोध, हम पहले कहते हैं, अरे जो डेटाबेस इस उपयोगकर्ता के जानकारी में संग्रहीत किया जाता है? तो फिर हम मूल रूप से करेंगे जाने के लिए उस निर्णय का उपयोग उस डेटाबेस खोजने और वह है, जहां हम करेंगे सभी फाइलों को या सभी को लोड फ़ाइलों के बारे में मेटाडेटा. इसलिए हम sharding की एक बहुत का उपयोग करें. लेकिन sharding हमेशा पर्याप्त नहीं है. आप वास्तव में कैश करने की जरूरत है आम अनुरोधों का एक बहुत, क्योंकि यहां तक ​​कि उन डेटाबेस प्रश्नों महंगा हो सकता है इसलिए हम भी आक्रामक पर कब्जा करना यकीन है कि सबसे अधिक है कि बनाने के लिए रणनीति आम अनुरोध कर रहे हैं गणना करने के लिए काफी आसान है. और मूल रूप से है कि एक बहुत बनाता है तेजी से और यह इसके पूर्व पैमाने काम में आता है. तो यह है कि एक बहुत कम है ड्रॉपबॉक्स कैसे काम करता है उच्च स्तर. एलेक्स Allain: मैं एलेक्स Allain हूँ. थॉमस CARRIERO: और मैं थॉमस Carriero हूँ. एलेक्स Allain: और इस CS50 है.