1 00:00:00,000 --> 00:00:00,409 2 00:00:00,409 --> 00:00:01,950 THOMAS CARRIERO: Јас сум Томас Carriero. 3 00:00:01,950 --> 00:00:03,640 Јас сум софтверски инженер во Dropbox. 4 00:00:03,640 --> 00:00:05,250 >> ALEX Ален: Јас сум Алекс Ален. 5 00:00:05,250 --> 00:00:08,200 Јас сум инженер тука во Dropbox. 6 00:00:08,200 --> 00:00:11,320 >> THOMAS CARRIERO: Да, бев всушност првиот шеф ТФ CS50 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 >> ALEX Ален: Па јас всушност не се CS50, но јас не ТФ тоа двапати. 11 00:00:25,310 --> 00:00:29,050 Еднаш како редовен ТФ, а потоа мојот постар година 12 00:00:29,050 --> 00:00:32,520 Јас всушност главата ТФ на CS50, кој беше многу забавно. 13 00:00:32,520 --> 00:00:34,270 THOMAS CARRIERO: Значи Кога Давид стигна 14 00:00:34,270 --> 00:00:38,647 ми за поставување Dropbox во 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 но Linux, Macintosh и Windows клиенти се сите всушност многу слични. 18 00:00:50,940 --> 00:00:55,590 >> Значи она што го правевме е ние пред-инсталиран на клиентот Dropbox Линукс во CS50 19 00:00:55,590 --> 00:00:59,990 апаратот, и тоа работи само како и сите наши други корисници на Линукс. 20 00:00:59,990 --> 00:01:02,210 >> ALEX Ален: Па начин Dropbox работи е тоа 21 00:01:02,210 --> 00:01:08,590 работи како клиент на многу различни оперативни системи и уреди. 22 00:01:08,590 --> 00:01:11,387 На Dropbox десктоп клиентот е една од најпознатите добро познато, 23 00:01:11,387 --> 00:01:12,720 и една од најинтересните. 24 00:01:12,720 --> 00:01:15,460 >> THOMAS CARRIERO: Значи Dropbox во основа ги зема сите датотеки 25 00:01:15,460 --> 00:01:19,500 што ќе се стави во папка и тоа парчиња оние датотеки во четири мегабајти парчиња. 26 00:01:19,500 --> 00:01:23,270 Па ние ќе ги 100-мегабајти PDF датотека и ние ќе 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 >> ALEX Ален: Блокот сервери се складирање за самите блокови, 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 >> THOMAS 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 Да, Dropbox на договори со скала во основа 56 00:02:47,580 --> 00:02:50,460 од страна на многу, многу агресивен sharding. 57 00:02:50,460 --> 00:02:56,400 >> ALEX Ален: 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 Или можеби е многу брз, евтини погледнете-up централна директориум. 67 00:03:23,670 --> 00:03:27,189 >> THOMAS 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 Па тоа е во многу на високо ниво како Dropbox работи. 85 00:04:17,320 --> 00:04:19,149 >> ALEX Ален: Јас сум Алекс Ален. 86 00:04:19,149 --> 00:04:20,857 >> THOMAS CARRIERO: И Јас сум Томас Carriero. 87 00:04:20,857 --> 00:04:22,579 ALEX Ален: И ова е CS50. 88 00:04:22,579 --> 00:04:23,936