จากปัญหา Dropbox ล่มช่วงสุดสัปดาห์ที่ผ่านมา ทางทีมวิศวกรรมของ Dropbox ออกมาอธิบายสาเหตุดังนี้ครับ
- ระบบของ Dropbox มีฐานข้อมูลเป็นจำนวนหลักหลายพันฐาน โดยฐานข้อมูลหนึ่งฐานจะมีเครื่องหลัก (master) 1 ตัว และเครื่องสำรอง (replica) 2 ตัวเสมอ
- เมื่อวันศุกร์ที่ 10 ม.ค. ทีมงานเตรียมอัพเกรดระบบปฏิบัติการบนเครื่องบางส่วน โดยใช้สคริปต์คอยเช็คว่าไม่มีข้อมูลถูกใช้งานอยู่บนเครื่องเป้าหมาย แล้วจึงค่อยเริ่มการอัพเกรด
- แต่สคริปต์อัพเกรดมีบั๊ก ทำให้เครื่องบางส่วนที่ยังมีข้อมูลถูกใช้งานอยู่ถูกสั่งอัพเกรดระบบปฏิบัติการไปด้วย ส่งผลให้การจับคู่ master-replica มีปัญหา
- ทางแก้คือสั่ง recovery จากฐานข้อมูลที่แบ็คอัพไว้ ซึ่งฐานข้อมูลส่วนใหญ่ถูกกู้กลับคืนภายใน 3 ชั่วโมงหลังระบบล่ม แต่ฐานข้อมูลบางฐานที่มีข้อมูลขนาดใหญ่มากๆ ต้องใช้เวลากู้ระบบนานทำให้กว่าฟีเจอร์จะกลับมาครบต้องรอกันหลายวัน
- ไฟล์ทั้งหมดที่ลูกค้าเก็บลง Dropbox ยังอยู่ปกติดี แต่จุดที่มีปัญหาคือฐานข้อมูลที่ระบบของ Dropbox ต้องใช้ในการให้บริการฟีเจอร์เสริมอื่นๆ เช่น photo album sharing หรือ camera upload
หลังจากเหตุการณ์ที่ผ่านมา Dropbox เพิ่มมาตรการคุ้มครองโดยปรับแก้สคริปต์ให้เช็คสถานะการทำงานของเครื่องละเอียดขึ้น และพัฒนาเครื่องมือกู้ฐานข้อมูล MySQL ขนาดใหญ่ให้ทำงานเร็วกว่าเดิม (บริษัทจะเปิดซอร์สเครื่องมือนี้ในอนาคต)