THOMAS Carriero: ฉันโทมัส Carriero ผมเป็นวิศวกรซอฟต์แวร์ที่ Dropbox ALEX Allain: ผมอเล็กซ์ Allain ผมเป็นวิศวกรที่นี่ที่ Dropbox THOMAS Carriero: ใช่ฉันเป็น จริง TF หัวแรกสำหรับ CS50 เมื่อเดวิดลินเข้ามาในชั้นเรียน ฉันได้รับการเรียนการสอนแล้ว CS50 สำหรับสองภาคการศึกษาปกติ กับไมค์สมิ ธ ซึ่งเป็น อาจารย์ก่อนที่มี ALEX Allain: ดังนั้นที่จริงผมไม่ได้ ใช้ CS50 แต่ฉันไม่ TF มันสองครั้ง เมื่อเป็น TF ปกติ แล้วปีสุดท้ายของฉัน ฉันเป็นจริง TF หัวของ CS50 ซึ่งเป็นจำนวนมากสนุก THOMAS Carriero: ดังนั้น เมื่อเดวิดเอื้อมมือออก กับฉันเกี่ยวกับการตั้งค่า Dropbox ในเครื่อง CS50, ผมตื่นเต้นจริงๆเพราะ เราจะมีลูกค้าลินุกซ์ ดังนั้นส่วนใหญ่ของผู้ใช้ของเราใช้ทั้ง Windows หรือลูกค้าแมคอินทอช แต่ Linux, Macintosh, และ Windows ลูกค้าทุกคนจริงที่คล้ายกันมาก ดังนั้นสิ่งที่เราทำคือเราติดตั้ง ลูกค้า Dropbox ลินุกซ์ใน CS50 เครื่องใช้และมันจะทำงานเช่นเดียวกับ ทั้งหมดของผู้ใช้ลินุกซ์อื่น ๆ ของเรา ALEX Allain: ดังนั้น วิธี Dropbox ทำงานมัน ทำงานเป็นลูกค้าที่แตกต่างกันมาก ระบบปฏิบัติการและอุปกรณ์ ลูกค้าเดสก์ทอป Dropbox เป็น หนึ่งในที่รู้จักกันดีที่สุด, และเป็นหนึ่งในที่น่าสนใจที่สุด THOMAS Carriero: ดังนั้น Dropbox โดยทั่วไปจะใช้เวลาทุกไฟล์ ที่คุณใส่ในโฟลเดอร์และชิ้น ไฟล์เหล่านั้นเป็นชิ้นสี่เมกะไบต์- ดังนั้นเราจะใช้เวลา 100 เมกะไบต์ ไฟล์ PDF และเราจะ ก้อนเป็น 25 ชิ้นสี่เมกะไบต์- ชิ้นเหล่านั้นจะถูกเข้ารหัสแล้วและ แล้วเราส่งพวกเขาไปยังเซิร์ฟเวอร์บล็อกของเรา ALEX Allain: เซิร์ฟเวอร์บล็อกเป็น การจัดเก็บข้อมูลสำหรับบล็อกของตัวเอง และเพื่อให้แต่ละบล็อกจะถูกเก็บไว้ใน เซิร์ฟเวอร์บล็อกที่มีข้อมูล และชอว์ 356 กัญชาของบล็อกที่ นั่นคือการเข้ารหัสขั้นพื้นฐานมากดั้งเดิม ที่สรุปในความรู้สึกบางอย่าง ข้อมูลในทางที่ไม่ซ้ำกันมาก ที่ไม่ซ้ำกันกับข้อมูลที่ คุณสามารถอัปโหลด ไฟล์ทั้งหมดทั้งหมดในครั้งเดียว แต่ปรากฎถ้าคุณทำ ว่าไฟล์ขนาดใหญ่จริงๆใช้ เป็นเวลานานมากในการอัปโหลดและถ้า คุณมีความล้มเหลวของคุณจะออกจากโชค และคุณจะต้องเริ่มต้นใหม่ได้ แล้วสิ่งที่เราทำคือเราบอก เซิร์ฟเวอร์อื่นในระบบของเรา และสิ่งที่เราเรียกว่าเมตาดาต้า เซิร์ฟเวอร์ที่เฮ้นี้เป็นไฟล์ และก็ประกอบไปด้วย รายชื่อของบล็อกต่อไปนี้ และเราผ่านขึ้น hashes ในการระบุกลุ่มผู้ มากกว่าอีกครั้งอัพโหลด บล็อกทั้งหมด metaserver แล้ว ตรวจสอบเซิร์ฟเวอร์บล็อก ทำให้แน่ใจว่าบล็อกจะมี หากเป็นเช่นนั้นสมบูรณ์แบบ ทุกอย่างเป็นสิ่งที่ดี THOMAS Carriero: ตอนที่เรา ต้องการดาวน์โหลดโดยทั่วไป ไฟล์จากอินเทอร์เน็ตให้ กล่าวว่าเราจะพูดกับ metaserver ล่าสุด แรกเดี๋ยวก่อนคุณสามารถบอกฉัน เกี่ยวกับการที่ไฟล์นี้ตั้งอยู่ที่ไหน และ metaserver จะบอกว่าโอ้ไฟล์นี้ของ จริง 25 ชิ้นสี่เมกะไบต์, และที่นี่พวกเขาจะ แล้วเราจะไปบล็อกเซิร์ฟเวอร์และ ดาวน์โหลดจริงแต่ละชิ้นเหล่านั้น แล้วเราจะสร้าง ไฟล์จากที่นั่น แล้วเราจะเริ่มต้นการดาวน์โหลด ใช่เพื่อ Dropbox ของข้อเสนอ ที่มีขนาดโดยทั่วไป โดย sharding มากก้าวร้าวมาก ALEX Allain: sharding คือเมื่อคุณ ใช้เวลาทั้งหมดของผู้ใช้ในการเริ่มต้นของคุณ หรือ บริษัท และบางทีพวกเขาของคุณ ที่ใช้จะอยู่ในฐานข้อมูลหนึ่ง และที่ใช้งานได้ดีจนกว่าคุณจะ ตีจำนวนที่แน่นอนของผู้ใช้ และจริงๆสิ่งที่คุณต้องการ ที่จะทำคือการหาวิธีการบางอย่าง ที่จะแยกผู้ที่ข้ามสอง ฐานข้อมูลหรืออาจจะมากกว่าสอง ดีพอที่จะทำให้คุณสามารถ มีผู้ใช้ทุกคนในโลก และดังนั้นเมื่อคุณชิ้นส่วน, สิ่งที่คุณทำคือคุณ หาวิธีการที่จะตัดสินใจบางอย่าง ซึ่งฐานข้อมูลที่จะไป การที่ไม่ต้องใช้ ตีไดเรกทอรีกลาง หรืออาจจะเป็นได้อย่างรวดเร็วมาก มองขึ้นไดเรกทอรีกลางราคาถูก THOMAS Carriero: เราไม่เคยมี ทุกอย่างที่เก็บไว้ในฐานข้อมูลหนึ่ง เพราะนั่นคือเกือบ ไม่เคยไปวัด ดังนั้นแทนที่จะสิ่งที่เราจะทำคือการใช้เวลาทั้งหมด ข้อมูลที่ไฟล์ทั้งหมดที่ จะถูกเก็บไว้ในเมตาดาต้าที่ ชิ้นส่วนหลายร้อย หรือหลายพันของฐานข้อมูลตรรกะ และนั่นหมายความว่าเมื่อเรามี ขอข้อมูลของผู้ใช้ ครั้งแรกที่เราจะบอกว่าเดี๋ยวก่อนซึ่งฐานข้อมูล เป็นข้อมูลของผู้ใช้ที่เก็บไว้นี้มีอะไรบ้าง จากนั้นเราก็จะเป็นพื้น ใช้การตัดสินใจที่จะไป พบฐานข้อมูลที่ และที่ที่เราจะ โหลดไฟล์ทั้งหมดหรือทั้งหมด ข้อมูลเกี่ยวกับไฟล์ ดังนั้นเราจึงใช้มาก sharding แต่ sharding ไม่เคยพอ คุณเป็นจริงจำเป็นที่จะต้องเก็บ จำนวนมากของการร้องขอทั่วไป เพราะแม้แต่ฐานข้อมูลเหล่านั้น คำสั่งจะมีราคาแพง ดังนั้นเราจึงยังไม่จับก้าวร้าว กลยุทธ์ที่จะทำให้แน่ใจว่าส่วนใหญ่ คำขอทั่วไป ค่อนข้างง่ายต่อการคำนวณ และโดยทั่วไปที่ทำให้จำนวนมาก ได้เร็วขึ้นและมันทำให้ทำงานระดับอดีต เพื่อให้ได้เป็นอย่างมาก ระดับสูงวิธีการทำงานของ Dropbox ALEX Allain: ผมอเล็กซ์ Allain THOMAS Carriero: และ ฉันโทมัส Carriero ALEX Allain: และนี่คือ CS50