THOMAS CARRIERO: Tôi Thomas Carriero. Tôi là một kỹ sư phần mềm tại Dropbox. ALEX Allain: Tôi là Alex Allain. Tôi là một kỹ sư ở đây tại Dropbox. THOMAS CARRIERO: Vâng, tôi là thực sự là TF đầu tiên cho CS50 khi David Malin đã qua các lớp học. Tôi đã được dạy CS50 cho hai học kỳ Mike Smith, người các giáo sư trước đó. ALEX Allain: Vì vậy, tôi thực sự đã làm không có CS50, nhưng tôi đã TF nó hai lần. Một lần như một TF thường xuyên, và sau đó năm cuối cấp của tôi Thực sự tôi là người đứng đầu của TF CS50, đó là rất nhiều niềm vui. THOMAS CARRIERO: Vì vậy, khi David đưa tay ra với tôi về việc thiết lập Dropbox trong thiết bị CS50, Tôi đã thực sự vui mừng, bởi vì chúng tôi thực sự có một khách hàng Linux, do đó hầu hết người dùng sử dụng một trong hai Cửa sổ hoặc Macintosh khách hàng, nhưng Linux, Macintosh và Windows khách hàng là tất cả thực sự rất giống nhau. Vì vậy, những gì chúng tôi đã làm là chúng ta cài đặt sẵn khách hàng Dropbox Linux trong CS50 thiết bị, và nó chạy giống như tất cả người dùng Linux khác của chúng tôi. ALEX Allain: Vì vậy, cách Dropbox hoạt động là nó chạy như một khách hàng trên nhiều khác nhau hệ điều hành và các thiết bị. Khách hàng máy tính Dropbox là một trong những nổi tiếng nhất, và một trong những thú vị nhất. THOMAS CARRIERO: Vì vậy, Dropbox về cơ bản có tất cả các file mà bạn đặt trong thư mục và khối các tập tin thành nhiều phần bốn megabyte. Vì vậy, chúng ta sẽ 100 megabyte Tập tin PDF và chúng tôi sẽ đoạn vào 25 khối bốn megabyte. Những khối này sau đó được mã hóa và sau đó chúng tôi gửi đến các máy chủ của chúng tôi khối. ALEX Allain: Các máy chủ là khối lưu trữ cho các khối mình, và do đó, mỗi khối được lưu trữ trong máy chủ khối với dữ liệu và một băm Shaw 356 của khối đó. Đó là một mã hóa rất cơ bản nguyên thủy tóm tắt, trong một ý nghĩa, các dữ liệu trong một cách rất độc đáo đó là duy nhất để dữ liệu đó. Bạn có thể tải lên các toàn bộ tập tin cùng một lúc, nhưng nó quay ra nếu bạn làm rằng, các tập tin thực sự lớn có một thời gian rất dài để tải lên, và nếu bạn có một thất bại, bạn đang trên may mắn và bạn phải khởi động lại nó. Những gì sau đó chúng tôi làm là chúng ta nói một máy chủ trong hệ thống của chúng tôi, và những gì chúng ta gọi là siêu dữ liệu máy chủ, mà hey này là một tập tin, và nó bao gồm các sau danh sách các khối. Và chúng tôi bỏ qua các bảng băm để xác định những khối chứ không phải tải lên lại toàn bộ khối. Các metaserver sau đó kiểm tra các máy chủ chặn, đảm bảo các khối đang có. Nếu có, hoàn hảo. Tất cả mọi thứ là tốt. THOMAS CARRIERO: Khi chúng tôi muốn về cơ bản tải về các tập tin từ internet, chúng ta hãy nói rằng, chúng tôi sẽ nói với metaserver cuối cùng đầu tiên, hey bạn có thể cho tôi biết về nơi ở của tập tin này? Và metaserver sẽ nói, oh tập tin này thực sự 25 khối bốn megabyte, và ở đây họ đang có. Và sau đó chúng tôi sẽ đi một máy chủ và khối thực sự tải về mỗi của những khối. Và sau đó chúng tôi sẽ xây dựng lại các tập tin từ đó, và sau đó chúng tôi sẽ bắt đầu tải về. Có, vì vậy Dropbox của giao dịch với quy mô cơ bản bởi rất, sharding rất tích cực. ALEX Allain: sharding là khi bạn mất tất cả người dùng trong đầu của bạn lên hoặc công ty của bạn và có thể họ sử dụng được trong một cơ sở dữ liệu, và hoạt động tuyệt vời cho đến khi bạn nhấn một số lượng nhất định của người sử dụng. Và thực sự những gì bạn muốn làm là tìm một cách nào đó chia những trên hai cơ sở dữ liệu, hoặc có thể nhiều hơn hai. Lý tưởng nhất, đủ để bạn có thể có mỗi người sử dụng trên thế giới. Và vì vậy khi bạn Shard, những gì bạn làm là bạn tìm thấy một số cách để quyết định mà cơ sở dữ liệu đi để mà không yêu cầu đánh một thư mục trung tâm. Hoặc có thể đó là một cách nhanh chóng, giá rẻ thư mục trung tâm nhìn lên. THOMAS CARRIERO: Chúng tôi không bao giờ có tất cả mọi thứ được lưu trữ trong một cơ sở dữ, bởi vì đó là gần như không bao giờ đi vào quy mô. Vì vậy, thay vào đó, những gì chúng tôi sẽ làm là lấy tất cả thông tin đó, tất cả các tập tin mà được lưu trữ trên các siêu dữ liệu, Shard trên hàng trăm hoặc hàng ngàn cơ sở dữ liệu hợp lý. Và đó có nghĩa là khi chúng ta có một yêu cầu thông tin của người dùng, đầu tiên chúng ta sẽ nói, hey mà cơ sở dữ liệu được thông tin của người dùng này được lưu trữ trong? Sau đó chúng tôi sẽ cơ bản sử dụng quyết định đó đi tìm cơ sở dữ liệu và đó là nơi chúng tôi sẽ tải tất cả các tập tin hoặc tất cả các siêu dữ liệu về các tập tin. Vì vậy, chúng tôi sử dụng rất nhiều sharding. Nhưng sharding không phải là luôn luôn đủ. Bạn đang thực sự cần bộ nhớ cache rất nhiều các yêu cầu chung, bởi vì ngay cả những cơ sở dữ liệu truy vấn có thể tốn kém vì vậy chúng tôi cũng làm chụp tích cực chiến lược để đảm bảo rằng nhất yêu cầu phổ biến là khá dễ dàng để tính toán. Và về cơ bản là làm cho rất nhiều nhanh hơn và nó làm cho nó hoạt động quy mô cũ. Vì vậy, đó là một rất cấp cao như thế nào Dropbox hoạt động. ALEX Allain: Tôi là Alex Allain. THOMAS CARRIERO: Và Tôi Thomas Carriero. ALEX Allain: Và đây là CS50.