Tags:
Node Thumbnail

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

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

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

No Description

อย่างไรก็ตาม 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

Get latest news from Blognone

Comments

By: theeranit
iPhoneAndroidWindowsIn Love
on 17 August 2013 - 11:26 #611886

ขอบคุณครับ

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 17 August 2013 - 11:29 #611888
PaPaSEK's picture

สุดยอดครับ

By: F16
iPhoneWindows PhoneAndroidIn Love
on 17 August 2013 - 11:30 #611891

สุดยอด

By: มายอง
iPhoneAndroidWindows
on 17 August 2013 - 12:03 #611899
มายอง's picture

สุดยอดเลยแหะพี่มาร์ค อลังการสุดๆ

By: soloman
ContributoriPhoneAndroidRed Hat
on 17 August 2013 - 12:24 #611913
soloman's picture

สุดยอด

By: masterAJ
iPhoneWindows
on 17 August 2013 - 12:27 #611915
masterAJ's picture

Graph Theory

http://en.wikipedia.org/wiki/Graph_theory

By: grit
iPhoneWindows PhoneWindows
on 17 August 2013 - 15:06 #611968

link ข่าวเปิดตัวเมื่อปี 2010 เป็น DS Lite!!! นะครับ

By: mk
FounderAndroid
on 17 August 2013 - 17:51 #612002 Reply to:611968
mk's picture

ฮ่า ก็อป URL ตกไปตัวนึงครับ ขอบคุณที่แจ้งมา

By: HOCKER
Red HatSUSEUbuntuWindows
on 17 August 2013 - 17:13 #611990

สุดยอด (ด้วยคน(ใครๆ ก็พูดกัน))

By: chaiwathuy on 18 August 2013 - 02:22 #612268

จะบอกว่าเบื้องหลังของ fb ก็คืออากู๋เราดีๆนี่เอง

HDFS = Hadoop File System

เก็บข้อมูลที่ได้แบ่งออกทีละ 64 K โดยมี replicate ไว้อีกหนึ่ง
กระจายไปบนคลัสเตอร์ โดยวิธีการค้นคืนข้อมูลมาทำได้โดย
Map Reduce

By: pallopmax
Contributor
on 21 August 2013 - 21:36 #614036

สุดยอด

By: Bank14
ContributorAndroidRed HatWindows
on 20 March 2015 - 14:57 #801207

เคยเขียน Java สร้าง udfs ให้ Hive สนุกดี