3 điểm bởi GN⁺ 2023-09-04 | 1 bình luận | Chia sẻ qua WhatsApp
  • Bài viết này thảo luận về Raft Consensus Algorithm, một thuật toán đồng thuận được thiết kế để dễ hiểu, có khả năng chịu lỗi và hiệu năng tương đương với Paxos.
  • Đồng thuận là một bài toán nền tảng trong các hệ thống phân tán chịu lỗi, nơi nhiều máy chủ phải đạt được đồng thuận về một giá trị. Khi một quyết định về giá trị đã được đưa ra, nó là cuối cùng.
  • Thuật toán Raft được sử dụng trong ngữ cảnh của replicated state machine để xây dựng các hệ thống chịu lỗi. Mỗi máy chủ có một state machine và một log. State machine là thành phần cần có khả năng chịu lỗi.
  • Thuật toán Raft đảm bảo rằng nếu một state machine áp dụng một lệnh làm lệnh thứ n, thì các state machine khác sẽ không áp dụng một lệnh khác làm lệnh thứ n. Nhờ đó, mỗi state machine xử lý cùng một chuỗi lệnh và tạo ra cùng một kết quả.
  • Bài viết này trực quan hóa cách một cụm Raft chạy trong trình duyệt, giúp hiểu cách Raft hoạt động.
  • Bài viết này cũng cung cấp danh sách các ấn phẩm và bài nói chuyện như một phần giới thiệu tốt về Raft.
  • Bài viết này liệt kê nhiều cách triển khai Raft có thể dùng ở các giai đoạn phát triển khác nhau, đồng thời cung cấp mã nguồn.
  • Nơi tốt nhất để đặt câu hỏi về Raft và các cách triển khai của nó là nhóm Google raft-dev.
  • Bài viết này được cấp phép theo Creative Commons Attribution 3.0 Unported License.

1 bình luận

 
GN⁺ 2023-09-04
Ý kiến trên Hacker News
  • Thuật toán đồng thuận Raft là một thuật toán học về hệ thống phân tán vừa đơn giản vừa vững chắc, và có nhiều ứng dụng trong thực tế.
  • Workbench Maelstrom do Jepsen tạo ra bao gồm một bản triển khai kiểm chứng mô hình của Raft cùng một hướng dẫn xuất sắc về cách triển khai nó.
  • Thuật toán Raft được chú ý vì tính đơn giản, nhưng bài báo gốc có chứa nhiều chi tiết đúng đắn mà các bản triển khai mang tính đồ chơi thường bỏ qua.
  • Việc triển khai Raft cho môi trường sản phẩm là một công việc dài và khó do khả năng lỗi của phần cứng thực tế, SLA độ trễ nghiêm ngặt, và nhu cầu về quorum linh hoạt/thành viên cụm động.
  • Bài báo về Raft rất dễ đọc và mang lại trực giác tuyệt vời, ngay cả với những người không muốn tự triển khai nó.
  • Phần mềm sử dụng Raft bao gồm etcd, consul, cockroach, tidb.
  • Sự rõ ràng về mặt khái niệm và tính thanh nhã của Raft có thể thể hiện ở hiệu năng và độ tin cậy.
  • Raft được hiểu rõ và có một hệ sinh thái thư viện mạnh mẽ, điều này có lợi cho những người triển khai nó.
  • Sự đơn giản và khả năng suy luận mà Raft mang lại được nhiều người trong cộng đồng kỹ thuật công nhận.
  • Một số người dùng khuyên rằng người mới bắt đầu với các giao thức đồng thuận nên bắt đầu bằng Bitcoin rồi chuyển sang Paxos/Tendermint/Simplex, và bỏ qua Raft hoàn toàn.
  • Dù đơn giản, Raft vẫn là một thuật toán phức tạp với nhiều điểm tinh vi, và một số người dùng gặp khó khăn khi hiểu và triển khai nó.
  • Thuật toán đồng thuận Raft được thiết kế để dễ hiểu, và tương đương Paxos về khả năng chịu lỗi lẫn hiệu năng.
  • Thuật toán được phân rã thành các bài toán con tương đối độc lập và bao quát mọi phần chính cần thiết cho các hệ thống thực tiễn.
  • Một số người dùng nhận thấy phần trực quan hóa và giải thích về thuật toán đồng thuận Raft không rõ ràng hoặc gây nhầm lẫn.