3 คะแนน โดย GN⁺ 2023-09-04 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • บทความนี้กล่าวถึง Raft Consensus Algorithm ซึ่งเป็นอัลกอริทึมฉันทามติที่ออกแบบมาให้เข้าใจได้ง่าย และมีความเทียบเท่ากับ Paxos ในด้านความทนทานต่อความผิดพลาดและประสิทธิภาพ
  • ฉันทามติคือปัญหาพื้นฐานในระบบกระจายที่ทนทานต่อความผิดพลาด ซึ่งเซิร์ฟเวอร์หลายเครื่องต้องตกลงกันเกี่ยวกับค่าใดค่าหนึ่ง เมื่อมีการตัดสินค่าแล้ว การตัดสินนั้นถือเป็นที่สิ้นสุด
  • อัลกอริทึม Raft ถูกใช้ในบริบทของ replicated state machine เพื่อสร้างระบบที่ทนทานต่อความผิดพลาด แต่ละเซิร์ฟเวอร์จะมี state machine และ log โดย state machine คือองค์ประกอบที่ต้องมีความทนทานต่อความผิดพลาด
  • อัลกอริทึม Raft รับประกันว่าหาก state machine ใดนำคำสั่งหนึ่งไปใช้เป็นคำสั่งลำดับที่ n แล้ว state machine อื่นจะไม่นำคำสั่งที่ต่างออกไปมาใช้เป็นคำสั่งลำดับที่ n ด้วยเหตุนี้ state machine แต่ละตัวจึงประมวลผลชุดคำสั่งเดียวกันและสร้างผลลัพธ์เดียวกัน
  • บทความนี้ช่วยให้เข้าใจวิธีการทำงานของ Raft โดยแสดงภาพการทำงานของคลัสเตอร์ Raft ที่รันอยู่ในเบราว์เซอร์
  • บทความนี้ยังมีรายการสิ่งพิมพ์และการบรรยายที่เหมาะสำหรับใช้เป็นบทนำที่ดีเกี่ยวกับ Raft
  • บทความนี้รวบรวม implementation ของ Raft จำนวนมากที่ใช้งานได้ในหลายช่วงของการพัฒนา พร้อมทั้งมีซอร์สโค้ดให้ด้วย
  • สถานที่ที่ดีที่สุดสำหรับการถามคำถามเกี่ยวกับ Raft และ implementation ของมันคือกลุ่ม Google raft-dev
  • บทความนี้ได้รับสิทธิ์ใช้งานภายใต้ Creative Commons Attribution 3.0 Unported License

1 ความคิดเห็น

 
GN⁺ 2023-09-04
ความคิดเห็นบน Hacker News
  • อัลกอริทึมฉันทามติ Raft เป็นอัลกอริทึมสำหรับเรียนรู้ระบบกระจายที่ทั้งเรียบง่ายและแข็งแกร่ง และมีการประยุกต์ใช้มากมายในโลกจริง
  • เวิร์กเบนช์ Maelstrom ที่สร้างโดย Jepsen มีทั้งการทำ model checking implementation ของ Raft และบทแนะนำที่ยอดเยี่ยมเกี่ยวกับวิธีนำไปใช้งาน
  • อัลกอริทึม Raft ได้รับความสนใจเพราะความเรียบง่าย แต่ในงานวิจัยต้นฉบับมีรายละเอียดด้านความถูกต้องจำนวนมากที่มักถูกมองข้ามในการทำ implementation แบบของเล่น
  • การทำ Raft ให้พร้อมใช้ในผลิตภัณฑ์เป็นงานที่ยาวและยาก เนื่องจากความเป็นไปได้ของความขัดข้องในฮาร์ดแวร์จริง, SLA ด้าน latency ที่เข้มงวด, และความจำเป็นของ quorum ที่ยืดหยุ่น/การเป็นสมาชิกคลัสเตอร์แบบไดนามิก
  • งานวิจัยของ Raft อ่านเข้าใจง่าย และให้สัญชาตญาณที่ยอดเยี่ยมแม้กับคนที่ไม่ได้ต้องการลงมือ implement เอง
  • ซอฟต์แวร์ที่ใช้ Raft ได้แก่ etcd, consul, cockroach และ tidb
  • ความชัดเจนเชิงแนวคิดและความสง่างามของ Raft สามารถสะท้อนออกมาในด้านประสิทธิภาพและความน่าเชื่อถือ
  • Raft เป็นสิ่งที่มีความเข้าใจอย่างดีและมี ecosystem ของไลบรารีที่แข็งแกร่ง ซึ่งเป็นประโยชน์ต่อผู้ที่นำมันไป implement
  • ความเรียบง่ายและความสามารถในการให้เหตุผลที่มากับ Raft ได้รับการยอมรับจากผู้คนจำนวนมากในชุมชนเทคนิค
  • ผู้ใช้บางคนแนะนำว่าผู้เริ่มต้นด้านโปรโตคอลฉันทามติควรเริ่มจาก Bitcoin แล้วค่อยไปต่อที่ Paxos/Tendermint/Simplex และข้าม Raft ไปเลย
  • แม้จะเรียบง่าย Raft ก็ยังเป็นอัลกอริทึมที่ซับซ้อนและมีรายละเอียดละเอียดอ่อนจำนวนมาก และผู้ใช้บางคนประสบปัญหาในการทำความเข้าใจและการ implement
  • อัลกอริทึมฉันทามติ Raft ถูกออกแบบมาให้เข้าใจง่าย และมีความสามารถด้าน fault tolerance และประสิทธิภาพเทียบเท่ากับ Paxos
  • อัลกอริทึมนี้ถูกแยกย่อยเป็นปัญหาย่อยที่ค่อนข้างเป็นอิสระต่อกัน และครอบคลุมองค์ประกอบหลักทั้งหมดที่จำเป็นสำหรับระบบเชิงปฏิบัติ
  • ผู้ใช้บางคนพบว่าการทำภาพประกอบและคำอธิบายของอัลกอริทึมฉันทามติ Raft นั้นไม่ชัดเจนหรือทำให้สับสน