Tags:

ผมเคย tweets บ่นว่าทำไม FB มันรวนมากเลย
โพสไปแล้วเห็นบ้างไม่เห็นบ้าง
แล้วก็มีคนบอกว่าFacebook ไม่ใช้ฐานข้อมูลแบบ DBMS
แต่ไม่ลงรายละเอียด
ผมเลยสงสัย ว่าจริงหรือไม่ แล้วเค้าเก็บข้อมูลแบบไหน

แต่ช่วงหลังๆเนี่ย FB รวนมากๆเลยนะครับ
ไม่เห็น cool เหมือนที่บอกไว้ในหนังเลยนะเนี่ย ><

Get latest news from Blognone
By: lancaster
Contributor
on 15 April 2011 - 17:22 #278471

ลองดูข่าวนี้ครับ

ส่วนเรื่องที่ว่ารวนๆ ผมว่ามันปกติดีนะครับ ลองตรวจสอบดูว่า force https ไว้ใน account setting รึยัง

By: Thaina
Windows
on 15 April 2011 - 17:22 #278472

ไม่จริงครับ DBMS แปลว่า ระบบจัดการฐานข้อมูล ถ้ามีฐานข้อมูล มันต้องใช้ซักระบบแน่ๆ

เพียงแต่มันไม่ได้ใช้ DBMS ปกติ (ปกติก็เช่น RDB) รู้สึกว่า FB จะใช้ NoSQL

ส่วนตัวแล้วที่มันรวนบ่อยขึ้น เกี่ยวกับเน็ตบ้านของแต่ละคนมากกว่าครับ เพราะตอนนี้มันใช้ AJAX

By: icez
ContributoriPhoneAndroidRed Hat
on 17 April 2011 - 22:12 #279042 Reply to:278472

Facebook นี่เจ้าพ่อ MySQL เลยนะครับ

Facebook Engineering

เอาจริงๆ มันก็ใช้กันทั้งหมดทุกอย่างเท่าที่ทำได้เลยอะ MySQL เป็น "Permanent Storage"
แล้วก็มี memcache ดักหน้า ใช้ hadoop / hive ทำ batch processing แล้วก็อย่างอื่นอีกเพียบ...

บางทีช่วงปรับปรุงระบบข้อมูลมันเลยขึ้นบ้างไม่ขึ้นบ้างก็มีครับ

By: Thaina
Windows
on 17 April 2011 - 22:22 #279045 Reply to:279042

Facebook เลิกใช้ MySQL มาใช้ Cassandra ตั้งนานแล้วครับ

By: icez
ContributoriPhoneAndroidRed Hat
on 17 April 2011 - 22:40 #279053 Reply to:279045

นานที่ว่าคงไม่เกินเดือนครึ่งมั้งครับ ล่าสุด engineering ยังมาบอกเรื่อง backup data ใน mysql เมื่อวันที่ 1 มีนาคมที่ผ่านมานี่เอง

Hybrid Incremental MySQL Backup

By: lancaster
Contributor
on 18 April 2011 - 00:13 #279072 Reply to:279045

สับสนกับ Twitter รึเปล่าอะท่าน

By: icez
ContributoriPhoneAndroidRed Hat
on 18 April 2011 - 01:03 #279089 Reply to:279072

เข้าใจ (เอาเอง) ว่า อ่านแต่ระบบ message ตัวใหม่ของ facebook
เพราะตัวนั้น cassandra + hbase ทั้งยวง ไม่(เห็น)มี mysql เข้าไปเกี่ยว

แต่ facebook ไม่ได้มีแค่ message ไงครับ :)

By: Thaina
Windows
on 18 April 2011 - 06:53 #279107 Reply to:279089

เข้าใจว่าใช้อีกหลายส่วนนะครับ และก็มีอีกหลายส่วนใช้อย่างอื่น

จนผมไม่เห็นเลยว่ามันใช้ MySQL ตรงไหนบ้าง วานบอก

By: kittipat
ContributorAndroidUbuntu
on 18 April 2011 - 15:15 #279231 Reply to:279107

มองจากข้างนอกไม่เห็น ไม่ได้แปลว่าไม่ใช้นะครับ และถ้าไม่ใช้ คงไม่มีหน้า MySQL at Facebook แล้วคนรู้เค้าอาจจะบอกไม่ได้ด้วยนะครับ

By: lancaster
Contributor
on 18 April 2011 - 20:08 #279332 Reply to:279107

เท่าที่ดูคร่าวๆ facebook engineering ยังเขียนเรื่อง mysql อยู่เรื่อยๆ มันก็ไม่มีเหตุผลที่ facebook จะไม่ใช้ mysql แล้วครับ

By: zerntrinos
ContributorAndroidWindows
on 15 April 2011 - 17:24 #278473
zerntrinos's picture

ขอบคุณครับทั้งสองท่าน เด๋วผมลองหาข้อมูลเพิ่ม


เวลาดูสาวชอบดูสาวขาวๆ Sex Sex เวลาดู Notebook ชอบแบบ"ถึกๆดำๆ"

Twitter : @Zerntrino
G+ : Zerntrino Plus

By: lew
FounderJusci&#039;s WriterMEconomicsAndroid
on 15 April 2011 - 17:29 #278475
lew's picture

ใช้อะไรก็มีบั๊กได้ครับ ความเชื่อว่าใช้อะไรแล้วไม่รวนนี่เกิดมาจากการตลาดซะส่วนใหญ่

แต่ระบบระดับ Facebook การใช้ NoSQL ดูจะสมเหตุผลครับ เพราะข้อมูลระดับนี้ไม่ควรเอา table มา join กันบ่อยๆ อยู่แล้ว


lewcpe.com, @wasonliw

By: Jessy
Red HatUbuntuWindows
on 15 April 2011 - 19:35 #278523

ผมก็เจอบักนะ อย่างเช่น ดูหน้า view feed บางทีเป็นข้อมูลเก่า แล้วข้อมูลใหม่มันหายไปไหนอะไรแบบนี้

By: kittipat
ContributorAndroidUbuntu
on 15 April 2011 - 22:12 #278560

โพสท์ไปแล้วไม่เห็นนี่มีอยู่สองอย่างนะครับ คือ ข้อมูลส่งไปไม่ถึงเลย กับส่งไปถึง แต่ว่าบางเครื่องยังไม่อัปเดท ถ้าแบบแรกก็คือหาย แบบที่สองคือต้องรอซักพัก เพราะว่าข้อมูลถูกเขียนอ่านหลายที่

ส่วนเรื่องรวน ผมเจอบ้างบางครั้ง แต่ก็แค่ notification งงๆ

By: zerntrinos
ContributorAndroidWindows
on 16 April 2011 - 00:47 #278595 Reply to:278560
zerntrinos's picture

+1 +Like


เวลาดูสาวชอบดูสาวขาวๆ Sex Sex เวลาดู Notebook ชอบแบบ"ถึกๆดำๆ"

Twitter : @Zerntrino
G+ : Zerntrino Plus

By: GuBaRaK
iPhoneUbuntuWindows
on 17 April 2011 - 13:18 #278905 Reply to:278560
GuBaRaK's picture
  1. มันเป็นปัญหาที่ Hardware แก้ไม่ได้
  2. เป็นปัญหาเพราะข้อมูลชอง FB ไม่ได้เป็น relation จึงส่งผลต่อ 1. โดยตรง

เนื่องจากข้อมูลใน RDB นั้น ต้องเป็น relation แต่ว่าสำหรับข้อมูลจำพวก NoSQL นั้น ข้อมูลมิได้ถูกเก็บอยู่ในรูปของ relation ทั้งหมด จึงทำให้ไม่สามารถใช้ RDB ในการเก็บ และ SQL ในการจัดการได้
การที่ข้อมูลมิได้ถูกเก็บอยู่ในรูปของ relation นั้น จะทำให้เกิดปัญหาหลายประการ ที่เห็นได้ชัดคือ redundancy (ปัญหาจำพวก insert,update,delete) ซึ่งใน RDB นั้นไม่ยอม โดยจะต้องทำการ Normalized ข้อมูลก่อน แต่ใน NoSQL ทั้งหลาย ยอมให้ข้อมูลมี redundancy บ้าง(ไม่แน่ใน รอผู้รู้มาเสริม) ซึ่งแน่นอน ก็ต้องพบกับปัญหา insert,update, delete
ซึ่งปัญหา insert, update, delete นี้ ไม่ว่าคุณจะอัพระบบให้มีความสามารถสูงเพียงใด ปัญหาการ insert, update, delete นั้นก็ยังคงอยู่ จึงกล่าวได้ว่า ปัญหา insert, update, delete นั้น เป็นปัญหาที่ Hardware แก้ไม่ได้

(ต่อไปนี้จะเป็นความคิดเห็นส่วนตัวล้วนๆ หากผิดพลาด โปรดชี้แจงด้วยครับ)
สำหรับกรณี Facebook นั้น FB เลือกเก็บข้อมูลโดยใช้ฐานข้อมูลแบบ NoSQL(ไม่แน่ใจว่าเป็นผลิตภัณฑ์ตัวไหน) ซึ่งมีข้อดีคือทำงานเร็วกว่าแบบ RDB แต่ก็อาจจะเจอกับปัญหาดังข้างบนที่กล่าวมา
ดังนั้น ถึงแม้ FB จะอัพเซอเวอร์แล้ว ปัญหาอาจจะยังไม่หมดไป เพราะ FB ยังต้องรับมือกับปัญหา insert, update, delete ทั้งหมดด้วยครับ

ส่วนตัวผมคิดว่า ข้อมูลเกี่ยวกับเรื่อง DB นี้ คน IT ยังมีเข้าใจผิดๆ ถูกๆ อยู่บ้างครับ

หากผมผิดพลาดประการใด ต้องขออภัยมา ณ ที่นี้ด้วยครับ แล้วผมจะมาแก้ไขให้ครับ

ผมว่าหลายๆท่านในนี้น่าจะมีความรู้มากกว่าผม หากประเด็นนี้ยังไม่เคลีย เดี๋ยวรอท่านอื่นมาเสริมนะครับ

Edit 1
เพิ่มความหมายของคำย่อต่างๆ

  • FB : Facebook

  • RDB : Rational Database

  • redundancy : Minimum Redundancy (จาก 1 ใน 5 ข้อของ Good Characteristic of Database System)

  • NoSQL : Not only SQL

Edit 2

Facebook ใช้ Cassandra ในการเก็บข้อมูลครับ ส่วน Facebook Messenger นั้น ใช้ HBase ครับ

By: kittipat
ContributorAndroidUbuntu
on 17 April 2011 - 18:26 #278972 Reply to:278905

เรื่อง redundancy นี่ไม่เกี่ยวนะครับ RDBMS ก็มีข้อมูลซ้ำได้เหมือนกัน

ปัญหาจริงๆ คือ consistency ที่เอาไปแลกกับ availability ซึ่งจากทฤษฎี CAP (Consistency, Availability, Partition tolerance) บอกว่าเราไม่สามารถได้คุณสมบัติทั้งสามอย่างพร้อมๆ กันได้ มันก็เลยทำให้ ณ ขณะหนึ่งผู้ใช้สองคนอาจจะเห็นข้อมูลไม่เหมือนกันได้

By: TeamKiller
ContributoriPhone
on 15 April 2011 - 23:05 #278577
TeamKiller's picture

บาง notify แล้ว คลิกเข้าไปดันไม่โผล่ แต่อีกหน้าที่เปิดหรอ ดันโชว์แล้ว

By: hisoft
ContributorWindows PhoneWindows
on 16 April 2011 - 15:17 #278686 Reply to:278577
hisoft's picture

+1 ต้อง Ctrl+F5 ประจำเลยครับ

By: kurosame
ContributoriPhone
on 19 April 2011 - 14:56 #279716 Reply to:278577
kurosame's picture

อันนั้นน่าจะเป็นที่ javascript
db มันน่าจะถูกแล้วนะ


{$user} was not an Imposter

By: lew.★ on 16 April 2011 - 15:05 #278684
lew.★'s picture

มันเป็นระบบที่ทำงานไวมาก รองรับคนมหาศาลในเวลาเดียวกัน บางครั้งบางทีมันก็ละเลยข้อมูลบางอย่างไปเพื่อความรวดเร็วของการตอบสนอง

By: RYUTAZA
Contributor
on 17 April 2011 - 07:51 #278866

ที่เจอช่วงนี้คือบัคที่หน้ารวม feed สองอย่าง อย่างแรกคือกด like ของใหม่แล้วมัน feed ของเก่าที่เคยกด like ขึ้นมา อย่างที่สองคือมันเอาคอมเมนต์โพสต์นึงไปใส่ของอีกโพสต์นึง สองอย่างนี้เกิดขึ้นจริง ๆ และ PrtSc เก็บไว้ด้วย ถ้าในหน้า profile ก็ยังไม่เคยเจออะไรแปลก ๆ