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.