Facebook เร่งความเร็ว SQL อย่างไร
(datanami.com)- ใช้งาน Presto ในสเกลขนาดใหญ่มาก: เซิร์ฟเวอร์ 40,000 เครื่อง, สแกนข้อมูล ~1 ExaByte ต่อวัน, มากกว่า 80% เป็น ETL ใหม่
→ แยก Compute ออกจาก Storage
- Presto ทำงานได้ดีอยู่แล้ว แต่เพื่อให้คิวรีเร็วขึ้นอีก (ต่ำกว่า 1 วินาที) จึงพัฒนา Raptor
→ แคชบน SSD ภายในเครื่อง, เมทาดาทาสโตร์ระดับไฟล์
→ ทำให้ Compute กับ Storage กลับมาถูกรวมกันอีกครั้ง → การสเกลและการจัดการทำได้ยากขึ้น
- ตั้งแต่ฤดูใบไม้ร่วงปีที่แล้ว เริ่มพัฒนาตัวแทน Raptor ที่ดัดแปลงจาก Alluxio: Alluxio Local Cache
→ ให้ประสิทธิภาพใกล้เคียงกับ Raptor แต่ไม่จำเป็นต้องแคชไว้บน SSD ภายในเครื่อง
→ Alluxio เป็นระบบไฟล์แบบกระจายเสมือน ที่ทำหน้าที่เป็นสะพานเชื่อมหลาย compute engine เข้ากับหลาย storage แบบอาศัยหน่วยความจำ
- Alluxio Local Cache
→ ถูกรวมอยู่ในรีลีสอย่างเป็นทางการตั้งแต่เวอร์ชัน 2.2
→ เป็นไลบรารีที่ฝังอยู่ใน Presto Server JVM ได้ โดยไม่จำเป็นต้องใช้ Alluxio ทั้งระบบ
- ติดตั้ง Alluxio Local Cache แทน Raptor เกือบทั้งหมดใน Presto fleet ทั้งหมดของ Facebook
→ ข้อมูลของ Facebook เข้าถึงได้ในรูปแบบไฟล์ ORC ผ่านอินเทอร์เฟซ HDFS
→ ใช้ SSD ภายในเครื่องด้วย แต่ถ้าไม่มีในแคชก็ยังเข้าถึงที่เก็บข้อมูลระยะไกลได้
→ ปรับปรุงประสิทธิภาพของ Presto ได้ราว 30%~50%
→ เมื่อเทียบกับ Raptor การเข้าถึงที่เก็บข้อมูลระยะไกลลดลง 57%
→ อัตราแคชฮิตของ Alluxio Cache สูงกว่า 90%
→ มีแผนจะถอด Raptor ออกทั้งหมดภายใน 6 เดือน
ยังไม่มีความคิดเห็น