Cloudflare chọn QuePaxa: thuật toán đồng thuận không cần leader cho mạng toàn cầu
Cloudflare vừa công bố Meerkat, một dịch vụ đồng thuận phân tán thử nghiệm dùng để quản lý mặt phẳng điều khiển toàn cầu nội bộ. Meerkat chạy trên QuePaxa, thuật toán đồng thuận mới do Tennage và Băsescu cùng cộng sự công bố năm 2023. Đây là lựa chọn khá lạ, vì phần lớn hệ thống đồng thuận dùng các thuật toán quen thuộc như Raft, (Multi-)Paxos hay Viewstamped Replication.
Vì sao không dùng thuật toán phổ biến
Các thuật toán đồng thuận phổ biến thường gặp vấn đề trong mạng diện rộng có kết nối và độ trễ biến động, tức môi trường giống Internet — nơi Meerkat vận hành. Chúng dựa vào một tiến trình leader luôn sẵn sàng và có độ trễ dự đoán được. Nếu leader gặp sự cố, chậm hơn bình thường hoặc mất kết nối, toàn bộ hệ thống sẽ chậm lại hoặc ngừng phục vụ cho đến khi có leader mới. Với Meerkat, điều này không thể chấp nhận.
Meerkat là hệ thống phân tán trong đó các bản sao thống nhất về một log sự kiện có thứ tự; mỗi sự kiện do thuật toán đồng thuận quyết định. Thuật toán đồng thuận đảm bảo các máy không bao giờ quyết định giá trị xung đột, nhờ đó log của các bản sao không phân kỳ. Meerkat dùng log này để cung cấp các ứng dụng như key-value store. Khác với Consul, etcd hay Apache ZooKeeper, Meerkat được thiết kế cho quy mô toàn cầu: một cụm có thể trải khắp các châu lục với đường truyền độ trễ cao và thay đổi thường xuyên.
Bài học từ sự cố năm 2020
Năm 2020, một bộ chuyển mạch lõi của Cloudflare gặp sự cố một phần khiến hệ thống dùng đồng thuận suy giảm, dashboard chạy chậm gấp 80 lần trong sáu giờ. Dữ liệu không mất, nhưng hệ thống không nhận ghi cho đến khi khắc phục. Điều này cho thấy thuật toán đồng thuận lý tưởng cần tiến triển được ngay cả khi độ trễ tăng vọt và kết nối đứt gãy, không chỉ khi máy chủ chết.
Can thiệp phá hoại và vấn đề leader
Trong Paxos, hai loại tiến trình là proposer và acceptor, với hai pha Prepare và Accept. Khi nhiều proposer gửi đề xuất cùng lúc, proposer khác có thể chèn số phiếu bầu cao hơn vào giữa hai pha, chặn các phiếu thấp hơn. Hai proposer có thể liên tục chặn nhau — gọi là can thiệp phá hoại. Càng nhiều proposer đồng thời, hệ thống càng dễ kẹt, dù không máy nào chết. Paxos vì thế không đảm bảo liveness nếu không giả định mạng bán đồng bộ.
Để tránh cạnh tranh, Raft, Multi-Paxos và Viewstamped Replication thêm một leader duy nhất được phép đề xuất. Cách này nhanh khi leader khỏe và mạng tốt, nhưng đổi lại hệ thống phụ thuộc vào leader. Khi leader chết, quá chậm hoặc mất kết nối, hệ thống đình trệ cho đến khi bầu leader mới.
Bầu leader và phát hiện lỗi
Quá trình bầu leader lại có thể tái tạo can thiệp phá hoại. Trong Raft, ứng viên cần đa số phiếu; nhiều bản sao cùng phát hiện leader mất và cùng tranh phiếu, chặn lẫn nhau. Càng nhiều cuộc bầu thất bại, càng nhiều ứng viên xuất hiện. Hiện tượng này gọi là lỗi siêu bền: sự cố tự duy trì dù nguyên nhân ban đầu đã hết. Một lần mất mạng hai giây có thể kích hoạt chuỗi bầu cử kéo dài hơn nhiều.
Phát hiện lỗi cũng khó vì trong mạng bất đồng bộ, không thể phân biệt máy chết với mạng chậm. Bộ phát hiện lỗi phải phỏng đoán dựa trên thời gian chờ so với kỳ vọng, và đôi khi đoán sai. Với thuật toán dựa trên leader, đoán sai là kích hoạt bầu cử và dừng toàn hệ thống. Kể cả khi đoán đúng, phát hiện lỗi vẫn chậm: timeout bầu cử của Raft thường đặt bằng 5-10 lần thời gian khứ hồi mạng, nên phát hiện leader lỗi có thể mất khoảng một giây — và chậm nhất là ở mạng toàn cầu độ trễ cao.
Lý do chọn QuePaxa
Cloudflare nhận thấy mọi thuật toán phụ thuộc leader nghiêm ngặt hoặc timeout chính xác đều sẽ đình trệ khi chạy trên Internet. Họ tìm các thuật toán thiết kế cho môi trường bất đồng bộ, không cần mạng hoạt động tốt hay định thời chính xác, và QuePaxa là lựa chọn phù hợp. Thuật toán này hứa hẹn ổn định hơn trước biến động, phần lớn nhờ không dựa vào leader để tiến triển.
Nguồn: Cloudflare Blog
Trích nguồn từ: Cloudflare Blog
Tags:
Bài viết liên quan
Vercel Cron Jobs trong môi trường production: an toàn và chống trùng lặp với Next.js
Hướng dẫn xây dựng cron job trên Vercel với Next.js, dùng CRON_SECRET, khóa PostgreSQL và cơ chế backfill có kiểm soát để xử lý lịch chạy bị trễ hoặc lặp lại.
Đọc thêm
Claude Fable 5.2 vượt GPT-6 Cyber trong bài kiểm tra tấn công mạng đa giai đoạn
Anthropic ra mắt Claude Fable 5.2 và Claude Mythos 5.2 với cải thiện về lập trình, suy luận và thị giác; Fable 5.2 đạt 76,3% trên CyScenarioBench, cao hơn mức 61% của GPT-6 Cyber.
Đọc thêm
Microsoft chính thức ra mắt .NET 11 với C# 15, Runtime Async và công cụ AI
Microsoft công bố .NET 11, bản phát hành STS hỗ trợ 2 năm, mang đến C# 15 với union types, Runtime Async dạng preview, cải thiện hiệu năng và bộ công cụ AI gồm MCP, MEAI và MAF.
Đọc thêmCodeRabbit tăng tốc phát triển phần mềm bằng AI, giao hàng nhiều gấp 20 lần
CodeRabbit sử dụng các mô hình OpenAI để kiểm soát và tin cậy mã do AI tạo ra, đồng thời dùng Codex để giao phần mềm nhiều gấp 20 lần với cùng đội ngũ kỹ sư.
Đọc thêmLLM đang tác động thế nào đến PostgreSQL và các DBA
Hubert 'depesz' Lubaczewski chia sẻ quan sát về làn sóng báo lỗi gia tăng trên PostgreSQL, nguyên nhân một số tính năng bị gỡ khỏi PostgreSQL 19 và những lo ngại về tác động của LLM tới cộng đồng và nghề DBA.
Đọc thêm
Agentic engineering: hướng dẫn cho developer vượt ra ngoài việc sinh mã
GitHub giới thiệu quy trình agentic engineering gồm bốn giai đoạn Plan, Build, Verify, Observe, giúp developer dùng Copilot hiệu quả hơn thay vì chỉ sinh mã.
Đọc thêm
OpenAI ra mắt GPT-6 Cyber sau khi AI giúp phát hiện 81 lỗ hổng Firefox và 948 lỗ hổng Linux
OpenAI công bố GPT-6 Cyber với khả năng tìm và vá lỗ hổng bảo mật vượt trội, đồng thời tiết lộ ba sự cố lệch chuẩn liên quan đến GPT-6 Astra và một mô hình nghiên cứu nội bộ.
Đọc thêm
Hiện đại hóa ứng dụng .NET cho Windows Arm64 với GitHub Copilot
GitHub Copilot upgrade agent giúp đánh giá, lập kế hoạch và thực hiện việc chuyển ứng dụng .NET từ Windows x64/x86 sang Windows Arm64, xác định các rào cản và cập nhật mã nguồn, phụ thuộc, cấu hình.
Đọc thêm
GitHub ra mắt kiến trúc lưu trữ Git mới cho kỷ nguyên tác nhân AI
GitHub công bố kiến trúc lưu trữ Git mới có khả năng xử lý hàng nghìn lượt ghi mỗi giây, đáp ứng nhu cầu phát triển phần mềm bằng AI agent với quy mô hàng trăm triệu lập trình viên.
Đọc thêmGPT-6 Cyber: Bước tiến mới cho các tác nhân an ninh mạng được căn chỉnh
OpenAI giới thiệu GPT-6 Cyber, mô hình an ninh mạng chuyên tìm lỗ hổng có thể khai thác và đề xuất bản vá, được huấn luyện để chỉ hoạt động trong phạm vi được cấp phép.
Đọc thêm