
Cloudflare dùng QuePaxa: thuật toán đồng thuận không cần leader
"Cloudflare introduced Meerkat, a distributed consensus service utilizing the QuePaxa algorithm to manage its global control plane. Traditional consensus algorithms like Raft and Paxos struggle with wide-area networks due to leader-based dependencies; QuePaxa avoids this by not relying on a single leader, improving stability in volatile network conditions. This addresses issues experienced in 2020 where network failures degraded a consensus-powered system's performance."
Sự cố trong các thuật toán đồng thuận có thể dẫn đến mất tính nhất quán dữ liệu hoặc ngừng hoạt động của hệ thống. Độ trễ cao và mất kết nối có thể gây ra các vấn đề về tính sẵn sàng.
Sự cố đồng thuận có thể ảnh hưởng đến hiệu suất ứng dụng và trải nghiệm người dùng. Các doanh nghiệp phụ thuộc vào hệ thống phân tán cần đảm bảo tính ổn định của cơ chế đồng thuận để tránh gián đoạn dịch vụ.
Cloudflare vừa công bố Meerkat, một dịch vụ đồng thuận phân tán thử nghiệm để quản lý hệ thống điều khiển toàn cầu. Meerkat sử dụng thuật toán QuePaxa để đạt được sự đồng thuận giữa các bản sao.
QuePaxa là một lựa chọn bất thường. Hầu hết hệ thống đồng thuận khác dùng Raft, (Multi-)Paxos hoặc Viewstamped Replication. Các thuật toán này đã được hiểu rõ, có triển khai trưởng thành và thường hoạt động tốt.
Tuy nhiên, các thuật toán đồng thuận phổ biến thường gặp khó khăn trên mạng diện rộng với kết nối không ổn định và độ trễ cao – như Internet. Chúng phụ thuộc vào một tiến trình leader duy nhất luôn sẵn sàng và có độ trễ dự đoán được. Nếu leader gặp sự cố, độ trễ tăng hoặc mất kết nối, toàn bộ hệ thống đồng thuận chậm lại hoặc ngừng hoạt động cho đến khi leader được thay thế. Điều này không chấp nhận được với Meerkat.
Meerkat triển khai trên toàn cầu, nên Cloudflare chọn QuePaxa. Thuật toán này hứa hẹn tính ổn định cao hơn trong điều kiện mạng không ổn định, vì không dựa vào leader để tiến hành. Năm 2020, sự cố một switch mạng của Cloudflare đã làm chậm hệ thống đồng thuận xuống 80 lần trong sáu giờ. Hệ thống không mất dữ liệu, nhưng không thể ghi dữ liệu cho đến khi sự cố được giải quyết. QuePaxa được thiết kế để tránh tình trạng này.
Meerkat sử dụng log sự kiện đã được đồng thuận để cung cấp các ứng dụng như key-value store. Các bản sao duy trì cùng trạng thái key-value nhờ đảm bảo log không bị phân kỳ. Các hệ thống tương tự bao gồm Consul, etcd và Apache ZooKeeper. Điểm khác biệt là Meerkat được thiết kế cho quy mô toàn cầu, với các cluster phân tán trên nhiều châu lục và kết nối có độ trễ cao và biến động.
Câu hỏi thường gặp
Meerkat là gì?
Meerkat là một dịch vụ đồng thuận phân tán thử nghiệm do Cloudflare phát triển để quản lý hệ thống điều khiển toàn cầu của họ. Nó sử dụng thuật toán QuePaxa để đảm bảo tính nhất quán dữ liệu giữa các bản sao.
QuePaxa khác gì so với Raft và Paxos?
QuePaxa không dựa vào một leader duy nhất để đưa ra quyết định, khác với Raft và Paxos. Điều này giúp QuePaxa ổn định hơn trong môi trường mạng không ổn định và có độ trễ cao.
Tại sao Cloudflare chọn QuePaxa?
Cloudflare chọn QuePaxa vì hệ thống của họ được triển khai trên toàn cầu, với các kết nối mạng có độ trễ cao và biến động. QuePaxa hứa hẹn tính ổn định cao hơn trong điều kiện này so với các thuật toán truyền thống.
Góc nhìn của Orange Cloud
Theo chúng tôi, việc Cloudflare chọn QuePaxa cho thấy xu hướng dịch chuyển khỏi các thuật toán đồng thuận truyền thống trong môi trường phân tán toàn cầu. Các doanh nghiệp Việt Nam có thể quan tâm đến việc thử nghiệm QuePaxa hoặc các thuật toán tương tự nếu họ xây dựng hệ thống phân tán trên nhiều khu vực địa lý. Tuy nhiên, do QuePaxa còn khá mới, việc triển khai và vận hành có thể đòi hỏi kiến thức chuyên sâu.