ARBITER nodes in MongoDB solve a voting problem but never a durability problem, so Percona recommends dropping them from production. In one case, losing a data center dropped write throughput from 3-4k ops/s per shard to just 50-75 ops/s, because majority write concern needed four data-bearing acknowledgments the arbiter couldn't provide. In another, an hour of acknowledged writes on a temporary primary got rolled back after a node outage, since the arbiter held no data to preserve them. MongoDB 5.3 disabled multiple arbiters by default, and Atlas doesn't support arbiters at all.
Nguồn: https://www.percona.com/blog/why-you-should-stop-using-arbiters-in-mongodb. 8 Sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Đọc tin ở đây, luyện code, học theo lộ trình và luyện IELTS trên các sản phẩm anh em — tất cả kết nối với nhau trong hệ sinh thái 8 Sync.
Cổng chính của hệ sinh thái: giới thiệu sản phẩm, blog và bảng giá trọn bộ.
Khám pháHọc theo lộ trình rõ từng chặng: video, quiz chấm tự động, certificate và mentor đang làm nghề.
Xem lộ trình1.000 bài DSA, đề tiếng Việt, chấm tự động 7 ngôn ngữ — nhiều bài FREE, chạy ngay trên trình duyệt.
Luyện miễn phíChấm bốn kỹ năng IELTS bằng AI, phản hồi chi tiết theo rubric.
Dùng thử miễn phíAI IDE 22 MB cho dev Việt.
Tải miễn phíBộ nhớ tổ chức cho AI agent.
Khám pháAI trực Fanpage, tự sàng lọc lead.
Dùng thửEvent-driven architecture (EDA) phổ biến nhưng tiềm nhiều thách thức trong production environment. Vấn đề truy xuất lỗi (tracing) trở nên phức tạp khi sự kiện (event) đi qua nhiều service khác nhau, đòi hỏi hệ thống phân tích log tập trung như ELK stack. Hàng đợi tin hỏi (dead letter queues) dễ bị đầy nếu không implement validation logic kỹ càng, dẫn đến mất dữ kiện quan trọng. Sự không nhất quán cuối cùng (eventual consistency) gây race condition khi nhiều consumer xử lý cùng event đồng thời. Các EDA system cần thiết kế event schema versioning và comprehensive testing framework với Contract Testing để đảm bảo reliability khi số lượng service tăng lên.
Bài viết này giúp lập trình viên nhận diện và giải quyết các vấn đề phổ biến trong kiến trúc hướng sự kiện như tracing, dead letter queues, tính nhất quán cuối cùng và testing.
Cloudflare Hyperdrive giúp kết nối ứng dụng Workers với database PostgreSQL hiệu quả. …
Bối cảnh triển khai AI mà không có bước review rủi ro giống như thiếu một WHERE clause trong SQL có thể dẫn đến đêm dài khắc phục sự cố. Nguyên nhân kỹ thuật nằm ở việc các model AI có thể tạo ra dữ liệu không mong muốn khi không có bộ lọc phù hợp. Hệ quả có thể rất nghiêm trọng khi hệ thống AI vô tình tạo ra nội dung độc hại, sai lệch hoặc vi phạm chính sách. Đáng học hỏi là bài nhấn mạnh việc xác định rõ vị trí của cơ chế "phanh" (brake) trong hệ thống AI và ai chịu trách nhiệm kiểm soát nó.
Bài viết này giải thích tại sao thiếu bước kiểm duyệt trong AI sản xuất có thể dẫn đến hậu quả nghiêm trọng như lỗi query SQL không có WHERE clause.
CAP Theorem xác định rằng trong distributed system chỉ có thể đảm bảo tối đa hai trong ba yếu tố Consistency, Availability, và Partition Tolerance. PACELC mở rộng CAP bằng cách thêm việc phải chọn giữa latency và consistency khi không có partition. Các hệ thống lớn như Amazon Dynamo và Google Bigtable đã chọn Availability và Partition Tolerance với trade-off là eventual consistency. Ngược lại, các hệ thống như Apache Zookeeper và Google Spanner ưu tiên Consistency ngay cả khi ảnh hưởng đến Availability trong trường hợp network partition. Việc hiểu rõ hai định lý này giúp lập trình viên đưa ra quyết định thiết kế phù hợp dựa trên yêu cầu cụ thể của ứng dụng.
Bài viết giúp lập trình viên hiểu rõ các sự đánh đổi trong hệ thống phân tán qua CAP và PACELC để thiết kế ứng dụng hiệu quả.
Tác giả đã xây dựng Dhara, một distributed task queue bằng Go sử dụng PostgreSQL làm queue duy nhất và nguồn sự thật thực tế. Sử dụng replication của PostgreSQL để đảm bảo high availability và các WAL (Write-Ahead Logging) để đảm bảo data consistency. Cấu trúc hiện tại hỗ trợ tới 5,000 tasks mỗi giây với độ trễ chỉ 10ms. Điều đáng học hỏi là việc tối ưu hóa connection pooling và cách tận dụng tính năng built-in của database để giảm dependency hệ thống.
Bài này giúp bạn hiểu cách xây dựng hàng đợi tác vụ phân tạp hiệu quả với Go và PostgreSQL mà không cần các hệ thống lưu trữ phụ.
Bất kỳ công ty nào trên thế giới cũng đều có chung bảy bảng cơ bản trong production database. Điều này xảy ra do nhu cầu universal trong quản lý dữ liệu như users, roles, permissions, organizations, projects, activities và audit logs. Hệ quả là kiến trúc database có phần giống nhau dù ngành nghề hay thời điểm khác nhau. Điều đáng học hỏi là việc nhận ra pattern này giúp tối ưu hóa thiết kế database và giảm thiểu thời gian phát triển.
Bài viết này giúp bạn hiểu được cấu trúc dữ liệu phổ biến nhất trong mọi hệ thống quản trị dữ liệu.
Trong Go 1.27, cải tiến về việc tái sử dụng kết nối HTTP/1 giúp tăng tốc đáng kể cho các chương trình gửi nhiều request tuần tự. Nguyên nhân kỹ thuật là do Go tối ưu hóa cơ chế keep-alive connection, giảm thời gian thiết lập kết nối TCP mới cho mỗi request. Hệ quả cụ thể là tăng throughput lên đến 40% trong các kịch bản sending nhiều request đến cùng một host. Điểm đáng học tập là tối ưu hóa connection reuse là chiến lược hiệu quả cho ứng dụng web-client, đặc biệt khi sử dụng standard library của Go mà không cần dependency bên thứ ba.
Bài viết này giúp lập trình viên hiểu cách Go 1.27 tối ưu hóa việc tái sử dụng kết nối HTTP/1 để tăng tốc độ ứng dụng gửi nhiều yêu cầu tuần tự.
Multi-tenant architecture giúp tối ưu tài nguyên nhưng các best practices như shared database và tenant context thực chất che giấu những trade-off. Việc sử dụng tenant-aware filtering trong PostgreSQL hay Redis cho mỗi request tăng latency lên đến 30-50ms. Shared database dẫn đến rủi ro data leakage khi tenant_id bị bypass trong 1 truy vấn SQL. Feature flags tuy linh hoạt nhưng gây khó khăn trong việc theo dõi bug và triển khai thực tế. Bạn nên cân nhắc trade-off giữa isolation và performance trước khi áp dụng các giải pháp multi-tenant.
Multi-Tenant Best Practices Can Backfire giúp lập trình viên nhận diện những điểm mù khi triển khai đa khách hàng và tránh các vấn đề tiềm ẩn.
Đang tải bình luận…