THOMAS Carriero: Olen Thomas Carriero. Olen ohjelmistosuunnittelija Dropbox. ALEX ALLAIN: Olen Alex Allain. Olen insinööri täällä Dropbox. THOMAS Carriero: Kyllä, olin itse asiassa ensimmäinen pää TF CS50 kun David Malin otti luokassa. Olin jo opettanut CS50 kaksi lukukautta Mike Smith, joka oli ennen professori siellä. ALEX ALLAIN: Joten en oikeastaan ​​ei ottaa CS50, mutta tein TF sen kahdesti. Kun tavallisena TF, ja sitten minun vanhempi vuoden Olin itse pää TF CS50, mikä oli hauskaa. THOMAS Carriero: So kun David pääsi ulos minulle perustamalla Dropbox on CS50 laitteen Olin todella innoissani, koska meillä on todellakin Linux asiakas, joten suurin osa käyttäjistä käyttää joko Windows-tai Macintosh-asiakkaita, mutta Linux, Macintosh-ja Windows- asiakkaita ovat kaikki todella hyvin samankaltaisia. Joten mitä teimme on meidän esiasennettuna Dropbox Linux asiakkaan CS50 laite, ja se toimii aivan kuten kaikki meidän muiden Linux-käyttäjille. ALEX ALLAIN: So tapa Dropbox toimii on se Toimii kuin asiakas monilla eri käyttöjärjestelmiä ja laitteita. Dropbox kassa asiakas on yksi hyvin tunnettu, ja yksi mielenkiintoinen. THOMAS Carriero: So Dropbox pohjimmiltaan vie kaikki tiedostot että laitat siihen kansioon ja se paloina nämä tiedostot neljän megatavun paloina. Viemme 100 megatavun PDF-tiedoston ja me kimpale sen 25 neljän megatavun paloina. Nämä palat ovat sitten salataan ja sitten lähettää ne meidän lohko palvelimia. ALEX ALLAIN: block palvelimet ovat varastointi lohkojen itse, ja siten, että kukin lohko on tallennettu lohko palvelimen tietojen kanssa ja Shaw 356 hash kyseisen lohkon. Se on hyvin yksinkertainen salaus alkeellinen että yhteenveto, jossain mielessä, tiedot hyvin ainutlaatuisella tavalla se on ainutlaatuinen, että tiedot. Voisit lähettää koko tiedoston kerralla, mutta käy ilmi, jos et että todella suuret tiedostot vievät todella kauan ladata, ja jos sinulla on vika, olet poissa onnea ja joudut käynnistämään sen. Mitä me sitten tehdä on kerromme toiselle palvelimelle meidän järjestelmässämme, ja mitä me kutsumme metatiedot palvelin, että hei tämä on tiedosto, ja se koostuu Seuraavassa luettelossa lohkoa. Ja menetämme hash tunnistaa ne lohkot sijasta uudelleen lataaminen koko korttelin. Metaserver sitten tarkistaa lohko palvelimet, varmistaa lohkot ovat siellä. Jos ne ovat, täydellinen. Kaikki on hyvää. THOMAS Carriero: Kun me haluavat pohjimmiltaan ladata tiedosto internetistä, katsotaanpa sanoa, me sanomme viimeiseen metaserver Ensimmäinen, hei voitteko kertoa minulle siitä mihin tämä tiedoston sijaitsee? Ja metaserver sanovat, oh tämän tiedoston oikeastaan ​​25 neljän megatavun paloina, ja tässä ne ovat. Ja sitten menemme lohko palvelimen ja itse ladata jokainen näistä paloina. Ja sitten me rekonstruoimaan tiedoston sieltä, ja sitten aloitamme latauksena. Kyllä, joten Dropbox tarjouksia asteikolla pohjimmiltaan erittäin, erittäin aggressiivinen sharding. ALEX ALLAIN: Sharding on kun ottaa kaikki käyttäjät näkevät käynnisty tai yrityksen ja ehkä ne käytetään olla yhteen tietokantaan, ja joka toimii hyvin, kunnes osuma tietty määrä käyttäjiä. Ja oikeastaan, mitä haluat tehdä on löytää tapa jakaa näitä kahdella eri tietokantoja tai ehkä enemmän kuin kaksi. Ihannetapauksessa riitä, että voit on kaikki käyttäjä maailmassa. Ja niin kun sirpale, mitä tehdä, on sinun löytää tapa päättää jonka tietokanta mennä ja joka ei edellytä lyömällä keskustassa hakemistoon. Tai ehkä se on erittäin nopea, Halvat Look-up Keski-hakemistossa. THOMAS Carriero: Meillä ei koskaan ole kaikki tallennetaan yhteen tietokantaan, koska se on lähes koskaan mittakaavassa. Joten sen sijaan, mitä teemme on toteutettava kaikki että tiedot, kaikki tiedostot tallennetaan metatietoja, sirpale sadoissa tai tuhansia loogisia tietokantoja. Ja se tarkoittaa, että kun meillä on pyytää käyttäjän tietoja, me ensin sanoa, hei, mihin tietokannan tämä käyttäjän tiedot tallennetaan? Sitten me pohjimmiltaan käyttää kyseisen päätöksen mennä huomaamaan, että tietokanta ja se jos näytämme lataa kaikki tiedostot tai kaikki metatietoja tiedostoja. Joten käytämme paljon sharding. Mutta sharding ei aina riitä. Olet todella täytyy välimuistiin paljon yhteisiä pyyntöjä, koska nekin tietokanta kyselyt voi olla kallista joten teemme myös aggressiivinen syömällä strategiat varmistaa, että kaikkein yhteiset vaatimukset ovat melko helppo laskea. Ja periaatteessa joka tekee paljon nopeampi ja se tekee työtä ex mittakaavassa. Niin, että on hyvin korkean tason miten Dropbox toimii. ALEX ALLAIN: Olen Alex Allain. THOMAS Carriero: Ja Olen Thomas Carriero. ALEX ALLAIN: Ja tämä on CS50.