THOMAS CARRIERO: მე Thomas Carriero. მე პროგრამული უზრუნველყოფის ინჟინერი at Dropbox. ALEX Allain: მე Alex Allain. მე ინჟინერი ვარ აქ Dropbox. THOMAS CARRIERO: დიახ, მე ვიყავი რეალურად პირველი ხელმძღვანელი TF განთავსების CS50 როდესაც დავით Malin აიღო კლასის. მე უკვე ასწავლის CS50 ორი სემესტრი მაიკ სმიტი, რომელიც წინასწარი პროფესორად. ALEX Allain: ასე რომ მე რეალურად არ მიიღოს CS50, მაგრამ მე TF ორჯერ. მას შემდეგ, რაც, როგორც რეგულარული TF, და შემდეგ ჩემი უფროსი წელიწადში მე რეალურად უფროსი TF of CS50, რომელიც ბევრი გართობა. THOMAS CARRIERO: So როდესაც დავით ვურთიერთობთ ჩემთვის შექმნის შესახებ Dropbox წელს CS50 ელექტრო მოწყობილობების, მე ნამდვილად აღფრთოვანებული, რადგან ჩვენ რეალურად Linux კლიენტი, ასე რომ ყველაზე მეტად ჩვენი მომხმარებლების გამოიყენოთ Windows ან Macintosh კლიენტებს, მაგრამ Linux, Macintosh და Windows კლიენტებს ყველა რეალურად ძალიან ჰგავს. ასე რომ, რა გავაკეთეთ ჩვენ წინასწარ დაყენებული Dropbox Linux კლიენტის CS50 ელექტრო და ის მუშაობს, ისევე, როგორც ყველა ჩვენი სხვა Linux მომხმარებლებს. ALEX Allain: So გზა Dropbox მუშაობს არის ეშვება როგორც კლიენტი სხვადასხვა ოპერაციული სისტემები და მოწყობილობები. Dropbox desktop კლიენტი ერთ ერთი ყველაზე ცნობილი, და ერთ ერთი ყველაზე საინტერესო. THOMAS CARRIERO: So Dropbox ძირითადად იღებს ყველა ფაილი რომ თქვენ საქაღალდეში და ის მოცულობით იმ ფაილს ოთხი მეგაბაიტი მოცულობით. ასე რომ, ჩვენ მიიღოს 100 მეგაბაიტი PDF ფაილი და ჩვენ ბლოკი იგი 25 ოთხნიშნა მეგაბაიტი მოცულობით. იმ მოცულობით, მაშინ დაშიფრული და მაშინ ჩვენ მათ ჩვენი ბლოკის სერვერები. ALEX Allain: ბლოკი სერვერები შენახვის ბლოკები თავს, და ასე ყოველ ბლოკი ინახება ბლოკი სერვერზე მონაცემები და Shaw 356 hash რომ ბლოკი. ეს ძალიან ელემენტარული შიფრირების პრიმიტიული რომ უყრის, ზოგიერთ გრძნობა, მონაცემები ძალიან უნიკალური გზა რომ არის უნიკალური, რომ მონაცემები. თქვენ შეიძლება ატვირთეთ მთელი ფაილის ერთდროულად, მაგრამ აღმოჩნდება, თუ აკეთებთ რომ, მართლაც დიდი ფაილი მიიღოს მართლაც ხანგრძლივი დრო ატვირთეთ და, თუ თქვენ გაქვთ უკმარისობა, თქვენ out of luck და თქვენ უნდა გადატვირთეთ იგი. რაც ჩვენ მაშინ ჩვენ გეტყვით სხვა სერვერზე ჩვენს სისტემაში, და რა ჩვენ მოვუწოდებთ მეტადატის სერვერზე, რომ hey ეს არის ფაილი, და ის შედგება შემდეგი სიაში ბლოკები. და ჩვენ გავლა up ჰეშები იდენტიფიცირება იმ ბლოკები ვიდრე ხელახლა ატვირთვა მთელი ბლოკი. Metaserver შემდეგ ამოწმებს ბლოკი სერვერები, რაც დარწმუნებული ბლოკები არსებობს. თუ ისინი, სრულყოფილი. ყველაფერი კარგია. THOMAS CARRIERO: როდესაც ჩვენ მინდა ძირითადად ჩამოტვირთვა ფაილი ინტერნეტში, მოდით ვთქვათ, ჩვენ ვთქვათ, რომ ბოლო metaserver პირველი, hey შეგიძლიათ მითხრათ სადაც ეს ფაილი მდებარეობს? და metaserver იტყვის, მე ამ ფაილის რეალურად 25 ოთხნიშნა მეგაბაიტი მოცულობით, და აქ არიან. და მაშინ ჩვენ წავიდეთ ბლოკი სერვერზე და რეალურად ჩამოტვირთოთ თითოეული იმ მოცულობით. და მაშინ ჩვენ აღვადგენთ ფაილი იქიდან, და მაშინ ჩვენ დავიწყებთ ჩამოტვირთვა. დიახ, ასე Dropbox გარიგებებს ერთად მასშტაბური ძირითადად ძალიან, ძალიან აგრესიული sharding. ALEX Allain: Sharding არის, როდესაც თქვენ მიიღოს ყველა მომხმარებლებს თქვენი დაწყება ან თქვენი კომპანია და იქნებ გამოყენებული იქნება ერთ მონაცემთა ბაზაში, და რომ მუშაობს დიდი, სანამ მოხვდა გარკვეული რაოდენობის მომხმარებლებს. და მართლაც, რა გსურთ უნდა გააკეთოთ გამოძებნოს გზა გაყოფილი იმ მასშტაბით ორი მონაცემთა ბაზა, ან იქნებ უფრო მეტია, ვიდრე ორი. იდეალურ შემთხვევაში, საკმარისი, რომ თქვენ შეგიძლიათ აქვს ყოველ მომხმარებელს მთელს მსოფლიოში. და ამრიგად, როდესაც თქვენ Shard, რას აკეთებთ თქვენ გამოძებნოს გზა საკითხის გადაწყვეტისას რომელიც მონაცემთა ბაზაში წასვლა რომ არ საჭიროებს დარტყმის ცენტრალური დირექტორია. ან იქნებ ეს არის ძალიან სწრაფი, იაფი look-up ცენტრალური დირექტორია. THOMAS CARRIERO: ჩვენ არასდროს ყველაფერი ინახება ერთ ბაზაში, იმიტომ, რომ თითქმის არასოდეს აპირებს მასშტაბით. ასე რომ ნაცვლად, რასაც ჩვენ ყველაფერს გავაკეთებთ, მიიღოს ყველა რომ ინფორმაცია ყველა ფაილი, რომელიც ინახება მეტადატის, Shard მასშტაბით ასობით ან ათასობით ლოგიკური ბაზაში. და ეს იმას ნიშნავს, რომ როდესაც ჩვენ გვაქვს მოითხოვოს შესახებ ინფორმაციას, ჩვენ პირველი ამბობენ, hey, რომელიც მონაცემთა ბაზაში არის ამ მომხმარებლის ინფორმაცია ინახება? მაშინ ჩვენ, ძირითადად, გამოიყენოთ, რომ გადაწყვეტილება წასვლა ნახავთ, რომ მონაცემთა ბაზაში და რომ სადაც ჩვენ გამოგიგზავნით ჩატვირთოს ყველა ფაილი ან ყველა მეტადატის შესახებ files. ასე რომ, ჩვენ ვიყენებთ ბევრი sharding. მაგრამ sharding ყოველთვის არ არის საკმარისი. თქვენ რეალურად უნდა ქეში ბევრი საერთო მოთხოვნები, იმიტომ, რომ თუნდაც ის მონაცემთა ბაზაში queries შეიძლება იყოს ძვირი ასე რომ, ჩვენ ასევე არ აგრესიული დაკავება სტრატეგია, რათა დავრწმუნდეთ, რომ ყველაზე საერთო მოთხოვნა საკმაოდ ადვილი გამოთვლაც. და ძირითადად, რაც ბევრი სწრაფად და ხდის მუშაობა ex მასშტაბით. ასე რომ ძალიან მაღალი დონის როგორ Dropbox მუშაობს. ALEX Allain: მე Alex Allain. THOMAS CARRIERO: და მე თომას Carriero. ALEX Allain: ეს არის CS50.