Quantcast
Channel: Blognone - ข่าวไอที เทคโนโลยี มือถือ เกม ความปลอดภัย โอเพนซอร์ส
Viewing all articles
Browse latest Browse all 58752

Facebook อธิบายสถาปัตยกรรมเบื้องหลัง Open Graph รันด้วย Apache Giraph

$
0
0

Facebook เป็นเครือข่ายสังคมที่เชื่อมโยง "ความสัมพันธ์"ของผู้คนและวัตถุต่างๆ ซึ่งบริษัทได้ออกแบบแพลตฟอร์ม Open Graph มารองรับฟีเจอร์นี้ (ข่าวเปิดตัวเมื่อปี 2010) ระยะหลัง Facebook จึงมองข้อมูลต่างๆ ในระบบของตัวเองเป็น "กราฟ" (ในความหมายทางคณิตศาสตร์ไม่ใช้กราฟเส้นแบบราคาหุ้นนะครับ) ไปซะเยอะ

ล่าสุด Facebook ออกมาอธิบายสถาปัตยกรรมเบื้องหลัง Open Graph ที่สามารถประมวลผลข้อมูลกราฟขนาดมหาศาล (Facebook มองไกลถึงระดับ"ล้านล้าน"ความสัมพันธ์)

เริ่มจากซอฟต์แวร์ประมวลผลกราฟ Facebook ทดสอบการทำงานของซอฟต์แวร์ 3 ตัวคือ Apache Hive, GraphLab, Apache Giraph ด้วยข้อมูลระดับ 25 ล้านความสัมพันธ์ (edge ในภาษาของทฤษฎีกราฟ) และสุดท้ายเลือก Giraphด้วยเหตุผลว่าทำงานร่วมกับสถาปัตยกรรมซอฟต์แวร์อื่นๆ ของ Facebook (เช่น Hadoop/HDFS/Hive/Corona) ได้ดี

อย่างไรก็ตาม Giraph ยังไม่เพียงพอต่อความต้องการของ Facebook ทำให้บริษัทต้องแก้ไขปรับปรุงโค้ดเพิ่ม รวมถึงเขียนซอฟต์แวร์อื่นๆ มาใช้งานร่วมด้วย

  • ปรับ Giraph ให้รับข้อมูลกราฟ (vertex/edge) ได้หลากหลายมากขึ้น จากเดิมที่ Giraph จะเน้นข้อมูล vertex เป็นหลัก
  • ข้อมูลของ Facebook เก็บอยู่ใน Hive แต่ดึงข้อมูลจากตารางออกมาโดยตรงไม่ได้ (Hive ต้องใช้ HQL เท่านั้น) ทำให้ Facebook ต้องสร้างซอฟต์แวร์ HiveIO ขึ้นมาอ่านข้อมูลเพื่อส่งต่อให้ Giraph อีกต่อหนึ่ง
  • พัฒนาให้ Giraph ทำงานแบบ multithreading ได้ เพื่อกระจายงานออกไปรันอย่างมีประสิทธิภาพ
  • ปรับปรุงวิธีการใช้หน่วยความจำของ Giraph ใหม่ จากเดิมที่เก็บทุกอย่างเป็นวัตถุในระบบของ Java ที่กินหน่วยความจำมาก มาเป็น byte array แทน
  • ปรับปรุงด้านเสถียรภาพและประสิทธิภาพเมื่อต้องประมวลผลข้อมูลจำนวนมากๆ

โค้ดทั้งหมด Facebook ส่งเข้าโครงการ Giraph แล้ว และล่าสุด Giraph ก็ออกรุ่น 1.0.0 ที่มีฟีเจอร์พวกนี้ทั้งหมด เพื่อให้องค์กรหรือบริษัทอื่นๆ ที่อยากมีสถาปัตยกรรมแบบเดียวกันนำไปใช้งานได้ด้วย

บทความต้นฉบับอธิบายเรื่องการใช้งานกราฟกับข้อมูลจริงไว้อย่างละเอียด (ที่เขียนมานี้ย่อมากแล้ว) ใครสนใจเรื่องทฤษฎีกราฟ และ big data ตามไปอ่านกันได้ครับ

ที่มา - Facebook Engineering

Apache, Big Data, Computer Science, Facebook, Hadoop, Open Graph, Open Source

Viewing all articles
Browse latest Browse all 58752

Trending Articles