THOMAS Carriero: Saya Thomas Carriero. Saya seorang insinyur perangkat lunak di Dropbox. ALEX Allain: Saya Alex Allain. Saya seorang insinyur di sini di Dropbox. THOMAS Carriero: Ya, saya sebenarnya TF kepala pertama untuk CS50 ketika David Malin mengambil alih kelas. Saya sudah mengajar CS50 selama dua semester dengan Mike Smith, yang profesor sebelumnya ada. ALEX Allain: Jadi saya benar-benar tidak mengambil CS50, tapi aku TF dua kali. Sekali sebagai TF biasa, dan kemudian tahun senior saya Aku benar-benar kepala TF CS50, yang menyenangkan. THOMAS Carriero: Jadi ketika David mengulurkan kepada saya tentang pengaturan Dropbox di alat CS50, Aku benar-benar senang, karena kita benar-benar memiliki sebuah klien Linux, sehingga sebagian besar pengguna kami menggunakan baik Windows atau Macintosh klien, tetapi Linux, Macintosh, dan Windows klien semua sebenarnya sangat mirip. Jadi apa yang kita lakukan adalah kita pra-instal klien Dropbox Linux di CS50 alat, dan itu berjalan seperti semua kami pengguna Linux lainnya. ALEX Allain: Jadi cara Dropbox bekerja itu berjalan sebagai klien pada banyak berbeda sistem operasi dan perangkat. The Dropbox client desktop salah satu yang paling terkenal, dan salah satu yang paling menarik. THOMAS Carriero: Jadi Dropbox pada dasarnya mengambil semua file yang Anda masukkan ke dalam folder dan potongan file-file menjadi potongan empat megabyte. Jadi kita akan mengambil 100-megabyte File PDF dan kita akan potongan itu menjadi 25 potongan empat megabyte. Mereka potongan tersebut kemudian dienkripsi dan maka kami mengirim mereka ke server blok kami. ALEX Allain: Server blok yang penyimpanan untuk blok sendiri, sehingga setiap blok disimpan dalam blok server dengan data dan Shaw 356 hash dari blok tersebut. Itu enkripsi sangat dasar primitif yang merangkum, dalam arti tertentu, data dalam cara yang sangat unik yang unik untuk data tersebut. Anda bisa meng-upload seluruh file sekaligus, tapi ternyata jika Anda melakukan itu, file-file besar mengambil waktu yang sangat lama untuk meng-upload, dan jika Anda memiliki kegagalan, Anda kurang beruntung dan Anda harus me-restart itu. Lalu apa yang kita lakukan adalah kita katakan server lain dalam sistem kami, dan apa yang kita sebut metadata Server, yang hey ini adalah file, dan itu terdiri dari Berikut daftar blok. Dan kami melewatkan hash untuk mengidentifikasi blok-blok bukan re-upload seluruh blok. Metaserver kemudian memeriksa server blok, memastikan blok yang ada. Jika mereka, sempurna. Semuanya baik. THOMAS Carriero: Ketika kita ingin pada dasarnya men-download file dari internet, mari kita katakanlah, kita akan mengatakan kepada metaserver terakhir pertama, hei dapat Anda ceritakan tentang di mana berkas ini berada? Dan metaserver akan mengatakan, oh berkas ini sebenarnya 25 potongan empat megabyte, dan di sini mereka. Dan kemudian kita akan pergi blok server dan benar-benar men-download masing-masing potongan. Dan kemudian kita akan merekonstruksi file dari sana, dan kemudian kita akan memulai download. Ya, jadi Dropbox dari penawaran dengan skala dasarnya dengan sangat, sharding sangat agresif. ALEX Allain: Sharding adalah ketika Anda mengambil semua pengguna dalam start up atau perusahaan Anda dan mungkin mereka digunakan untuk berada di satu database, dan yang bekerja bagus sampai Anda memukul sejumlah pengguna. Dan benar-benar apa yang Anda inginkan lakukan adalah menemukan beberapa cara untuk membagi mereka di dua database, atau mungkin lebih dari dua. Idealnya, cukup bahwa Anda dapat memiliki setiap pengguna di dunia. Dan ketika Anda pecahan, apa yang Anda lakukan adalah Anda menemukan beberapa cara untuk menentukan yang database untuk pergi untuk yang tidak memerlukan memukul direktori pusat. Atau mungkin itu adalah sangat cepat, murah direktori pusat look-up. THOMAS Carriero: Kami tidak pernah memiliki semuanya disimpan dalam satu database, karena itulah hampir tidak akan skala. Jadi sebagai gantinya, apa yang akan kita lakukan adalah mengambil semua informasi itu, semua file yang disimpan pada metadata, pecahan di ratusan atau ribuan database logis. Dan itu berarti bahwa ketika kita memiliki meminta informasi pengguna, pertama kita akan mengatakan, hey database yang adalah informasi pengguna ini disimpan dalam? Kemudian kita pada dasarnya akan menggunakan keputusan itu untuk pergi menemukan database yang dan di sanalah kita akan memuat semua file atau semua metadata tentang file. Jadi kita menggunakan banyak sharding. Tapi sharding tidak selalu cukup. Anda benar-benar perlu cache banyak permintaan umum, karena bahkan basis data tersebut query bisa mahal jadi kami juga melakukan menangkap agresif strategi untuk memastikan bahwa sebagian besar permintaan umum adalah cukup mudah untuk menghitung. Dan pada dasarnya yang membuat banyak lebih cepat dan membuatnya bekerja skala ex. Jadi itu di sangat tingkat tinggi bagaimana Dropbox bekerja. ALEX Allain: Saya Alex Allain. THOMAS Carriero: Dan Aku Thomas Carriero. ALEX Allain: Dan ini adalah CS50.