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 Allain: ผมอเล็กซ์ 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 เมื่อเดวิดลินเข้ามาในชั้นเรียน 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 หัวของ 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 หรือลูกค้าแมคอินทอช 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 Allain: ดังนั้น วิธี 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 Allain: เซิร์ฟเวอร์บล็อกเป็น การจัดเก็บข้อมูลสำหรับบล็อกของตัวเอง 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 และเราผ่านขึ้น hashes ในการระบุกลุ่มผู้ 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 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 >> และดังนั้นเมื่อคุณชิ้นส่วน, สิ่งที่คุณทำคือคุณ 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 หรืออาจจะเป็นได้อย่างรวดเร็วมาก มองขึ้นไดเรกทอรีกลางราคาถูก 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 Allain: ผมอเล็กซ์ 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