THOMAS CARRIERO: Saya Thomas Carriero. Saya seorang jurutera perisian di Dropbox. ALEX Allain: Saya Alex Allain. Saya seorang jurutera di sini pada Dropbox. THOMAS CARRIERO: Ya, saya sebenarnya TF kepala pertama untuk CS50 apabila David Malin mengambil alih kelas. Saya telah pun mengajar CS50 untuk dua semester dengan Mike Smith, yang merupakan profesor terlebih dahulu di sana. ALEX Allain: Jadi saya benar-benar tidak mengambil CS50, tetapi saya TF dua kali. Sekali sebagai TF biasa, dan kemudian tahun kanan saya Saya sebenarnya kepala TF daripada CS50, yang banyak keseronokan. THOMAS CARRIERO: Jadi apabila David mendekati kepada saya kira-kira menubuhkan Dropbox perkakas CS50 yang, Saya benar-benar teruja, kerana kita sebenarnya mempunyai pelanggan Linux, jadi kebanyakan pengguna kami menggunakan sama ada Windows atau pelanggan Macintosh, tetapi Linux, Macintosh, dan Windows pelanggan semua sebenarnya yang sama. Jadi apa yang kita lakukan ialah kita pra-dipasang pelanggan Dropbox Linux dalam CS50 perkakas, dan ia berjalan seperti semua pengguna Linux kami yang lain. ALEX Allain: Jadi cara Dropbox berfungsi ialah ia berjalan sebagai pelanggan di pelbagai sistem operasi dan alat-alat. The Dropbox pelanggan desktop salah satu yang paling terkenal, dan salah satu yang paling menarik. THOMAS CARRIERO: Jadi Dropbox pada dasarnya mengambil semua fail yang anda masukkan ke dalam folder dan ia ketulan fail-fail ke dalam ketulan empat megabait. Oleh itu, kita akan mengambil 100-megabait Fail PDF dan kita akan sebahagian ke dalam 25 ketulan empat megabait. Mereka ketulan kemudian disulitkan dan maka kita menghantar mereka ke pelayan blok kami. ALEX Allain: The pelayan blok adalah penyimpanan untuk blok diri mereka sendiri, dan sebagainya setiap blok disimpan di dalam server blok dengan data yang dan hash Shaw 356 blok itu. Itu satu penyulitan yang sangat asas primitif yang meringkaskan, dalam erti kata lain, data dengan cara yang sangat unik yang unik untuk data tersebut. Anda boleh memuat naik keseluruhan fail sekaligus, tetapi ternyata jika anda yang, fail benar-benar besar mengambil masa yang benar-benar panjang untuk dimuat naik, dan jika anda mempunyai kegagalan, anda daripada nasib dan anda perlu memulakannya semula. Apa pula yang kita lakukan adalah kita beritahu server lain dalam sistem kami, dan apa yang kita panggil metadata pelayan, yang hey ini adalah fail, dan ia terdiri daripada senarai blok berikut. Dan kita melalukan yang Hash untuk mengenal pasti orang-orang blok bukannya semula memuat naik seluruh blok. Metaserver kemudian memeriksa pelayan blok, memastikan blok berada di sana. Jika mereka, sempurna. Semuanya baik. THOMAS CARRIERO: Apabila kita mahu pada dasarnya turun fail dari internet, mari kita katakan, kita akan berkata kepada metaserver terakhir pertama, hey anda boleh beritahu saya tentang di mana terletak fail ini? Dan metaserver akan berkata, oh fail ini ini sebenarnya 25 ketulan empat megabait, dan di sini mereka. Dan kemudian kita akan pergi pelayan blok dan sebenarnya turun setiap orang-orang ketulan. Dan kemudian kita akan membina semula fail dari sana, dan kemudian kita akan mula memuat turun. Ya, jadi Dropbox tawaran dengan skala pada dasarnya dengan sangat, sharding sangat agresif. ALEX Allain: Sharding adalah apabila anda mengambil semua pengguna dalam permulaan anda atau syarikat anda dan mungkin mereka digunakan untuk berada di dalam satu pangkalan data, dan kerja-kerja besar sehingga anda mencecah sebilangan pengguna. Dan benar-benar apa yang anda mahu lakukan adalah mencari cara untuk berpecah mereka di dua pangkalan data, atau mungkin lebih daripada dua orang. Sebaik-baiknya, cukup bahawa anda boleh mempunyai setiap pengguna di dunia. Dan jadi apabila anda beling, apa yang anda lakukan adalah anda mencari cara-cara membuat keputusan mana pangkalan data untuk pergi kepada yang tidak memerlukan memukul direktori pusat. Atau mungkin ia adalah sangat cepat, murah melihat-up direktori pusat. THOMAS CARRIERO: Kami tidak pernah mempunyai semua disimpan dalam satu pangkalan data, kerana itulah hampir tidak akan dicapai. Jadi,, apa yang kita akan lakukan ialah mengambil semua maklumat itu, semua fail-fail yang disimpan pada metadata, Shard seluruh beratus-ratus atau beribu-ribu pangkalan data logik. Dan itu bererti bahawa apabila kita mempunyai meminta maklumat pengguna, kita mula-mula akan berkata, hey mana pangkalan data adalah maklumat pengguna ini disimpan di dalam? Kemudian kita akan pada dasarnya menggunakan keputusan itu untuk pergi mencari pangkalan data yang dan di mana kita akan memuatkan semua fail atau semua Metadata tentang fail. Oleh itu, kita menggunakan banyak sharding. Tetapi sharding tidak selalunya mencukupi. Anda sebenarnya perlu cache banyak permintaan yang sama, kerana walaupun pangkalan data mereka pertanyaan boleh mahal jadi kami juga melakukan menangkap agresif strategi untuk memastikan bahawa yang paling permintaan biasa ialah agak mudah untuk mengira. Dan pada dasarnya yang membuat banyak lebih cepat dan ia membuatkan ia berfungsi bekas skala. Jadi, itu di yang sangat peringkat tinggi bagaimana Dropbox berfungsi. ALEX Allain: Saya Alex Allain. THOMAS CARRIERO: Dan Saya Thomas Carriero. ALEX Allain: Dan ini adalah CS50.