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
iPhone Android WindowsIn Love
on 17 August 2013 - 11:26 #611886

ขอบคุณครับ

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

สุดยอดครับ

By: F16
iPhone Windows Phone Android In Love
on 17 August 2013 - 11:30 #611891

สุดยอด

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

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

By: soloman
Contributor iPhone Android Red Hat
on 17 August 2013 - 12:24 #611913
soloman's picture

สุดยอด

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

Graph Theory

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

By: grit
iPhone Windows Phone Windows
on 17 August 2013 - 15:06 #611968

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

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

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

By: HOCKER
Red HatSUSE Ubuntu Windows
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
Contributor Android Red HatWindows
on 20 March 2015 - 14:57 #801207

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