1 00:00:00,000 --> 00:00:00,409 2 00:00:00,409 --> 00:00:01,950 थॉमस CARRIERO: मैं थॉमस Carriero हूँ. 3 00:00:01,950 --> 00:00:03,640 मैं ड्रॉपबॉक्स पर एक सॉफ्टवेयर इंजीनियर हूँ. 4 00:00:03,640 --> 00:00:05,250 >> एलेक्स Allain: मैं एलेक्स Allain हूँ. 5 00:00:05,250 --> 00:00:08,200 मैं यहाँ ड्रॉपबॉक्स पर एक इंजीनियर हूँ. 6 00:00:08,200 --> 00:00:11,320 >> थॉमस CARRIERO: हाँ, मैं था वास्तव में CS50 के लिए पहले सिर TF 7 00:00:11,320 --> 00:00:13,660 डेविड मालिन वर्ग में पदभार संभाल लिया है. 8 00:00:13,660 --> 00:00:17,010 मैं पहले से ही अध्यापन किया गया था दो सत्रों के लिए CS50 9 00:00:17,010 --> 00:00:20,700 कौन था माइक स्मिथ के साथ वहाँ पूर्व प्रोफेसर. 10 00:00:20,700 --> 00:00:25,310 >> एलेक्स Allain: तो मैं वास्तव में नहीं किया CS50 ले, लेकिन मैं TF यह दो बार किया था. 11 00:00:25,310 --> 00:00:29,050 एक बार एक नियमित TF के रूप में, और फिर अपने वरिष्ठ वर्ष 12 00:00:29,050 --> 00:00:32,520 मैं वास्तव में के सिर TF था बहुत मज़ा था जो CS50,. 13 00:00:32,520 --> 00:00:34,270 थॉमस CARRIERO: तो डेविड बाहर पहुंचे जब 14 00:00:34,270 --> 00:00:38,647 मेरे पास करने के बारे में CS50 उपकरण में ड्रॉपबॉक्स, 15 00:00:38,647 --> 00:00:41,230 मैं वास्तव में उत्साहित थी क्योंकि हम वास्तव में एक लिनक्स ग्राहक है, 16 00:00:41,230 --> 00:00:46,270 इसलिए हमारे उपयोगकर्ताओं के अधिकांश या तो उपयोग Windows या Macintosh क्लाइंट, 17 00:00:46,270 --> 00:00:50,940 लेकिन लिनक्स, Macintosh, और Windows ग्राहकों को सभी वास्तव में बहुत समान हैं. 18 00:00:50,940 --> 00:00:55,590 >> तो क्या हम किया था कि हम पहले से स्थापित है CS50 में ड्रॉपबॉक्स लिनक्स ग्राहक 19 00:00:55,590 --> 00:00:59,990 उपकरण, और यह बस की तरह चलता है हमारे अन्य लिनक्स उपयोगकर्ताओं के सभी. 20 00:00:59,990 --> 00:01:02,210 >> एलेक्स Allain: तो ड्रॉपबॉक्स काम करता है जिस तरह से यह है 21 00:01:02,210 --> 00:01:08,590 कई अलग अलग पर एक ग्राहक के रूप में चलाता है ऑपरेटिंग सिस्टम और उपकरणों. 22 00:01:08,590 --> 00:01:11,387 ड्रॉपबॉक्स डेस्कटॉप क्लाइंट है सबसे अच्छी तरह से जाना जाता है में से एक, 23 00:01:11,387 --> 00:01:12,720 और सबसे दिलचस्प में से एक. 24 00:01:12,720 --> 00:01:15,460 >> थॉमस CARRIERO: तो ड्रॉपबॉक्स मूल रूप से सभी फाइलें ले जाता है 25 00:01:15,460 --> 00:01:19,500 आप फ़ोल्डर में डाल दिया है और यह हिस्सा है कि उन फ़ाइलों को चार मेगाबाइट मात्रा में. 26 00:01:19,500 --> 00:01:23,270 तो हम एक 100 मेगाबाइट ले जाऊँगा पीडीएफ फाइल और हम करेंगे 27 00:01:23,270 --> 00:01:26,070 हिस्सा 25 चार मेगाबाइट मात्रा में यह. 28 00:01:26,070 --> 00:01:30,670 उन हिस्सा तो एन्क्रिप्टेड और कर रहे हैं फिर हम अपने ब्लॉक सर्वरों के लिए भेजते हैं. 29 00:01:30,670 --> 00:01:35,980 >> एलेक्स Allain: ब्लॉक सर्वर हैं ब्लॉक को खुद के लिए भंडारण, 30 00:01:35,980 --> 00:01:39,570 और इसलिए प्रत्येक ब्लॉक में संग्रहीत किया जाता है डेटा के साथ ब्लॉक सर्वर 31 00:01:39,570 --> 00:01:43,990 और कि ब्लॉक के एक शॉ 356 हैश. 32 00:01:43,990 --> 00:01:48,280 यही कारण है कि आदिम एक बहुत ही बुनियादी एन्क्रिप्शन है कि कुछ समझ में, सारांश, 33 00:01:48,280 --> 00:01:53,140 एक बहुत ही अनूठे तरीके से डेटा कि उस डेटा के लिए अद्वितीय है. 34 00:01:53,140 --> 00:01:55,540 >> आप अपलोड कर सकते हैं सभी को एक बार पूरी फाइल, 35 00:01:55,540 --> 00:02:00,120 यदि आप करते हैं, लेकिन यह पता चला है कि, वास्तव में बड़ी फ़ाइलों को ले 36 00:02:00,120 --> 00:02:03,616 अपलोड करने के लिए एक बहुत लंबे समय है, और अगर आप एक विफलता है, तुम भाग्य से बाहर रहे हैं 37 00:02:03,616 --> 00:02:04,740 और आप इसे पुनः आरंभ करने के लिए है. 38 00:02:04,740 --> 00:02:07,620 >> क्या हम तो हम बता है हमारी प्रणाली में एक और सर्वर, 39 00:02:07,620 --> 00:02:11,550 और क्या हम मेटाडाटा कॉल सर्वर, कि हे यह एक फ़ाइल है 40 00:02:11,550 --> 00:02:14,200 और यह से बना है ब्लॉकों की सूची निम्नलिखित. 41 00:02:14,200 --> 00:02:17,030 और हम हैश को पारित उन ब्लॉकों की पहचान करने के लिए 42 00:02:17,030 --> 00:02:18,770 बजाय पुन: अपलोड पूरे ब्लॉक. 43 00:02:18,770 --> 00:02:20,820 metaserver तो ब्लॉक सर्वर की जाँच करता है, 44 00:02:20,820 --> 00:02:22,153 ब्लॉक हैं सुनिश्चित करता है. 45 00:02:22,153 --> 00:02:23,140 वे सही कर रहे हैं. 46 00:02:23,140 --> 00:02:24,040 सब कुछ अच्छा है. 47 00:02:24,040 --> 00:02:26,400 >> थॉमस CARRIERO: जब हम मूल रूप से डाउनलोड करना चाहते हैं 48 00:02:26,400 --> 00:02:30,050 इंटरनेट से फाइल, चलो कहते हैं, हम पिछले metaserver को कहता हूँ 49 00:02:30,050 --> 00:02:33,090 पहला, अरे आप मुझे बता सकते हैं इस फाइल के स्थित है, जहां के बारे में? 50 00:02:33,090 --> 00:02:37,230 और metaserver कहते हैं, ओह इस फाइल की इच्छा वास्तव में 25 चार मेगाबाइट हिस्सा, 51 00:02:37,230 --> 00:02:38,210 और यहाँ वे कर रहे हैं. 52 00:02:38,210 --> 00:02:41,712 और फिर हम एक ब्लॉक सर्वर जाओ और हूँ वास्तव में उन मात्रा में से प्रत्येक डाउनलोड. 53 00:02:41,712 --> 00:02:43,670 और फिर हम पुनर्निर्माण हूँ फ़ाइल वहाँ से, 54 00:02:43,670 --> 00:02:45,086 और फिर हम डाउनलोड शुरू करेंगे. 55 00:02:45,086 --> 00:02:47,580 सौदों की हां, तो ड्रॉपबॉक्स पैमाने के साथ मूल रूप से 56 00:02:47,580 --> 00:02:50,460 बहुत से, बहुत आक्रामक sharding. 57 00:02:50,460 --> 00:02:56,400 >> एलेक्स Allain: जब आप Sharding है अपने शुरू में सभी उपयोगकर्ताओं को ले 58 00:02:56,400 --> 00:03:00,010 या आपकी कंपनी और शायद वे एक डेटाबेस में हुआ करता था, 59 00:03:00,010 --> 00:03:02,620 और कहा कि जब तक आप महान काम करता है प्रयोक्ताओं की एक निश्चित संख्या में मारा. 60 00:03:02,620 --> 00:03:04,578 और वास्तव में आप क्या चाहते हैं ऐसा करने के लिए कोई रास्ता मिल गया है 61 00:03:04,578 --> 00:03:07,410 दो भर में उन विभाजित करने के लिए डेटाबेस, या शायद दो से अधिक. 62 00:03:07,410 --> 00:03:10,830 आप कर सकते हैं कि आदर्श रूप में, पर्याप्त दुनिया में हर उपयोगकर्ता है. 63 00:03:10,830 --> 00:03:13,080 >> और इसलिए तुम, ठीकरा जब क्या तुम हो तुम है 64 00:03:13,080 --> 00:03:16,830 निर्णय लेने का कोई रास्ता खोजने जो डेटाबेस जाना 65 00:03:16,830 --> 00:03:20,240 उस करने की आवश्यकता नहीं है एक केंद्रीय निर्देशिका मार. 66 00:03:20,240 --> 00:03:23,670 या हो सकता है कि यह एक बहुत जल्दी है सस्ते देखो केंद्रीय निर्देशिका. 67 00:03:23,670 --> 00:03:27,189 >> थॉमस CARRIERO: हम कभी नहीं एक डेटाबेस में संग्रहीत सब कुछ, 68 00:03:27,189 --> 00:03:28,980 कि लगभग है क्योंकि पैमाने पर करने जा रहा है कभी नहीं. 69 00:03:28,980 --> 00:03:33,970 तो बजाय, हम क्या करेंगे सब ले जाता है जानकारी है कि सभी फ़ाइलें 70 00:03:33,970 --> 00:03:36,610 मेटाडाटा पर जमा हो जाती है, सैकड़ों भर ठीकरा 71 00:03:36,610 --> 00:03:38,710 या तार्किक डेटाबेस के हजारों. 72 00:03:38,710 --> 00:03:42,900 और इसका मतलब है कि हम एक है जब एक उपयोगकर्ता की जानकारी के लिए अनुरोध, 73 00:03:42,900 --> 00:03:46,890 हम पहले कहते हैं, अरे जो डेटाबेस इस उपयोगकर्ता के जानकारी में संग्रहीत किया जाता है? 74 00:03:46,890 --> 00:03:49,852 तो फिर हम मूल रूप से करेंगे जाने के लिए उस निर्णय का उपयोग 75 00:03:49,852 --> 00:03:51,560 उस डेटाबेस खोजने और वह है, जहां हम करेंगे 76 00:03:51,560 --> 00:03:55,080 सभी फाइलों को या सभी को लोड फ़ाइलों के बारे में मेटाडेटा. 77 00:03:55,080 --> 00:03:56,464 >> इसलिए हम sharding की एक बहुत का उपयोग करें. 78 00:03:56,464 --> 00:03:57,880 लेकिन sharding हमेशा पर्याप्त नहीं है. 79 00:03:57,880 --> 00:04:00,380 आप वास्तव में कैश करने की जरूरत है आम अनुरोधों का एक बहुत, 80 00:04:00,380 --> 00:04:04,010 क्योंकि यहां तक ​​कि उन डेटाबेस प्रश्नों महंगा हो सकता है 81 00:04:04,010 --> 00:04:07,570 इसलिए हम भी आक्रामक पर कब्जा करना यकीन है कि सबसे अधिक है कि बनाने के लिए रणनीति 82 00:04:07,570 --> 00:04:10,310 आम अनुरोध कर रहे हैं गणना करने के लिए काफी आसान है. 83 00:04:10,310 --> 00:04:14,630 और मूल रूप से है कि एक बहुत बनाता है तेजी से और यह इसके पूर्व पैमाने काम में आता है. 84 00:04:14,630 --> 00:04:17,320 तो यह है कि एक बहुत कम है ड्रॉपबॉक्स कैसे काम करता है उच्च स्तर. 85 00:04:17,320 --> 00:04:19,149 >> एलेक्स Allain: मैं एलेक्स Allain हूँ. 86 00:04:19,149 --> 00:04:20,857 >> थॉमस CARRIERO: और मैं थॉमस Carriero हूँ. 87 00:04:20,857 --> 00:04:22,579 एलेक्स Allain: और इस CS50 है. 88 00:04:22,579 --> 00:04:23,936