1 00:00:00,000 --> 00:00:00,409 2 00:00:00,409 --> 00:00:01,950 THOMAS CARRIERO: მე Thomas Carriero. 3 00:00:01,950 --> 00:00:03,640 მე პროგრამული უზრუნველყოფის ინჟინერი at Dropbox. 4 00:00:03,640 --> 00:00:05,250 >> ALEX Allain: მე Alex Allain. 5 00:00:05,250 --> 00:00:08,200 მე ინჟინერი ვარ აქ Dropbox. 6 00:00:08,200 --> 00:00:11,320 >> THOMAS CARRIERO: დიახ, მე ვიყავი რეალურად პირველი ხელმძღვანელი TF განთავსების CS50 7 00:00:11,320 --> 00:00:13,660 როდესაც დავით Malin აიღო კლასის. 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 Allain: ასე რომ მე რეალურად არ მიიღოს CS50, მაგრამ მე TF ორჯერ. 11 00:00:25,310 --> 00:00:29,050 მას შემდეგ, რაც, როგორც რეგულარული TF, და შემდეგ ჩემი უფროსი წელიწადში 12 00:00:29,050 --> 00:00:32,520 მე რეალურად უფროსი TF of CS50, რომელიც ბევრი გართობა. 13 00:00:32,520 --> 00:00:34,270 THOMAS CARRIERO: So როდესაც დავით ვურთიერთობთ 14 00:00:34,270 --> 00:00:38,647 ჩემთვის შექმნის შესახებ Dropbox წელს CS50 ელექტრო მოწყობილობების, 15 00:00:38,647 --> 00:00:41,230 მე ნამდვილად აღფრთოვანებული, რადგან ჩვენ რეალურად Linux კლიენტი, 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 Linux კლიენტის CS50 19 00:00:55,590 --> 00:00:59,990 ელექტრო და ის მუშაობს, ისევე, როგორც ყველა ჩვენი სხვა Linux მომხმარებლებს. 20 00:00:59,990 --> 00:01:02,210 >> ALEX Allain: So გზა Dropbox მუშაობს არის 21 00:01:02,210 --> 00:01:08,590 ეშვება როგორც კლიენტი სხვადასხვა ოპერაციული სისტემები და მოწყობილობები. 22 00:01:08,590 --> 00:01:11,387 Dropbox desktop კლიენტი ერთ ერთი ყველაზე ცნობილი, 23 00:01:11,387 --> 00:01:12,720 და ერთ ერთი ყველაზე საინტერესო. 24 00:01:12,720 --> 00:01:15,460 >> THOMAS CARRIERO: So 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 Allain: ბლოკი სერვერები შენახვის ბლოკები თავს, 30 00:01:35,980 --> 00:01:39,570 და ასე ყოველ ბლოკი ინახება ბლოკი სერვერზე მონაცემები 31 00:01:39,570 --> 00:01:43,990 და Shaw 356 hash რომ ბლოკი. 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 მართლაც ხანგრძლივი დრო ატვირთეთ და, თუ თქვენ გაქვთ უკმარისობა, თქვენ out of luck 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 და რა ჩვენ მოვუწოდებთ მეტადატის სერვერზე, რომ hey ეს არის ფაილი, 40 00:02:11,550 --> 00:02:14,200 და ის შედგება შემდეგი სიაში ბლოკები. 41 00:02:14,200 --> 00:02:17,030 და ჩვენ გავლა up ჰეშები იდენტიფიცირება იმ ბლოკები 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 პირველი, hey შეგიძლიათ მითხრათ სადაც ეს ფაილი მდებარეობს? 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 Allain: 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 >> და ამრიგად, როდესაც თქვენ Shard, რას აკეთებთ თქვენ 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 ან იქნებ ეს არის ძალიან სწრაფი, იაფი look-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 ინახება მეტადატის, Shard მასშტაბით ასობით 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 ჩვენ პირველი ამბობენ, hey, რომელიც მონაცემთა ბაზაში არის ამ მომხმარებლის ინფორმაცია ინახება? 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 ჩატვირთოს ყველა ფაილი ან ყველა მეტადატის შესახებ files. 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 იმიტომ, რომ თუნდაც ის მონაცემთა ბაზაში queries შეიძლება იყოს ძვირი 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 და ძირითადად, რაც ბევრი სწრაფად და ხდის მუშაობა ex მასშტაბით. 84 00:04:14,630 --> 00:04:17,320 ასე რომ ძალიან მაღალი დონის როგორ Dropbox მუშაობს. 85 00:04:17,320 --> 00:04:19,149 >> ALEX Allain: მე Alex Allain. 86 00:04:19,149 --> 00:04:20,857 >> THOMAS CARRIERO: და მე თომას Carriero. 87 00:04:20,857 --> 00:04:22,579 ALEX Allain: ეს არის CS50. 88 00:04:22,579 --> 00:04:23,936