💻

Trình mô phỏng cơ sở dữ liệu phân tán

Trực quan hóa sao chép nút, đánh đổi định lý CAP và lan truyền nhất quán

💻 Thử ngay

\ud83e\udd14 What Is a Distributed Database?

A distributed database spreads data across multiple servers (nodes) in different locations. The CAP theorem says you can only guarantee two of three properties: Consistency (every read sees the latest write), Availability (every request gets a response), and Partition Tolerance (the system works despite network splits).

Why does this matter? Every major internet service from Google to Netflix relies on distributed databases. Understanding the tradeoffs between consistency and availability is essential for building reliable, scalable systems that serve billions of users.

📖 Tìm hiểu sâu

Ví dụ 1

Hãy tưởng tượng một hệ thống thư viện có các chi nhánh ở 5 thành phố, tất cả đều có chung một danh mục. Khi có người soát sổ tại Chi nhánh A, tất cả các chi nhánh khác đều cần cập nhật sổ sách. Nếu đường dây điện thoại đến Nhánh C bị hỏng (phân vùng mạng), Nhánh C vẫn có thể hiển thị sách có sẵn - đó là vấn đề về tính nhất quán. Bạn có thể khóa tất cả các khoản cho vay cho đến khi Chi nhánh C kết nối lại (chọn tính nhất quán) hoặc để mỗi chi nhánh tiếp tục cho vay độc lập và đối chiếu sau (chọn tính khả dụng).

Ví dụ 2

Hãy nghĩ đến cuộc trò chuyện nhóm với bạn bè ở các quốc gia khác nhau. Khi bạn gửi tin nhắn, mọi người sẽ thấy nó theo thứ tự như nhau. Nhưng nếu internet của ai đó bị rớt, họ sẽ bỏ lỡ tin nhắn và có thể trả lời thông tin lỗi thời — tạo ra các chuỗi cuộc trò chuyện xung đột. Cơ sở dữ liệu phân tán phải đối mặt với vấn đề chính xác này ở quy mô lớn và sử dụng các kỹ thuật như đồng hồ vector và CRDT để giải quyết tình trạng hỗn loạn khi mọi người kết nối lại.

🎯 Mẹo sử dụng

Người mới

Bắt đầu với 5 nút và Hệ số sao chép 3 - điều này có nghĩa là mỗi phần dữ liệu được lưu trữ trên 3 trong số 5 nút

Trung cấp

So sánh tính nhất quán ghi ALL và ONE - ALL chậm hơn nhưng đảm bảo mọi bản sao đều có dữ liệu mới nhất

Chuyên gia

Tắt Đồng hồ Vector và kích hoạt ghi đồng thời trong một phân vùng để quan sát các xung đột chưa được giải quyết

📚 Thuật ngữ

CAP Theorem
Định lý của Brewer nói rằng một hệ thống phân tán có thể cung cấp tối đa hai trong số ba đảm bảo: Tính nhất quán, Tính sẵn sàng và Dung sai phân vùng. Trong quá trình phân vùng mạng, bạn phải chọn giữa C và A.
Replication Factor
Số lượng bản sao của từng phần dữ liệu được duy trì trên toàn cụm. Hệ số sao chép là 3 có nghĩa là mỗi lần ghi được lưu trữ trên 3 nút khác nhau.
Quorum
Phần lớn các bản sao phải xác nhận việc đọc hoặc ghi để hoạt động thành công. Đối với RF=3, số đại biểu là 2. Số lần đọc số đại biểu kết hợp với số lần ghi số đại biểu đảm bảo tính nhất quán.
Consistency Level
Xác định số lượng bản sao phải phản hồi trước khi đọc hoặc ghi được coi là thành công. ONE là nhanh nhất nhưng có thể trả về dữ liệu cũ; ALL chậm nhất nhưng luôn nhất quán.
Network Partition
Lỗi giao tiếp mạng khiến cụm thành hai hoặc nhiều nhóm nút không thể giao tiếp với nhau, buộc phải lựa chọn giữa tính nhất quán và tính khả dụng.
Split-Brain
Một tình trạng nguy hiểm trong đó phân vùng mạng khiến hai nhóm nút chấp nhận độc lập các thao tác ghi xung đột, tin rằng chúng là cụm có thẩm quyền.
Vector Clock
Cấu trúc dữ liệu theo dõi thứ tự nguyên nhân của các sự kiện trên các nút phân tán. Mỗi nút duy trì một bộ đếm logic và việc so sánh các đồng hồ vectơ sẽ tiết lộ liệu các sự kiện có liên quan đến nguyên nhân hay đồng thời hay không.
CRDT
Kiểu dữ liệu sao chép không xung đột — một cấu trúc dữ liệu được thiết kế sao cho các bản cập nhật đồng thời trên các bản sao khác nhau luôn hội tụ về cùng một trạng thái mà không cần phối hợp, sử dụng các thuộc tính toán học như tính giao hoán.
Last-Write-Wins (LWW)
Một chiến lược giải quyết xung đột đơn giản trong đó việc viết có dấu thời gian mới nhất sẽ giành chiến thắng. Dễ thực hiện nhưng có thể âm thầm loại bỏ các bản cập nhật đồng thời.
Gossip Protocol
Một mô hình giao tiếp ngang hàng trong đó mỗi nút trao đổi định kỳ thông tin trạng thái với một nút ngang hàng ngẫu nhiên, cuối cùng truyền bá các bản cập nhật đến tất cả các nút - lấy cảm hứng từ cách tin đồn lan truyền.
Anti-Entropy
Một quy trình sửa chữa nền trong đó các nút so sánh định kỳ dữ liệu của chúng với các nút ngang hàng và đồng bộ hóa những khác biệt, đảm bảo tính nhất quán cuối cùng ngay cả sau khi xảy ra lỗi.
Merkle Tree
Cấu trúc dữ liệu cây băm được sử dụng để phát hiện hiệu quả sự khác biệt giữa dữ liệu bản sao. Các nút so sánh các giá trị băm gốc trước tiên, sau đó đi sâu hơn để tìm và sửa chữa các khóa cụ thể có sự khác biệt.
Tombstone
Một điểm đánh dấu cho biết dữ liệu đã bị xóa. Tombstone phải được giữ lại trong khoảng thời gian TTL để ngăn dữ liệu đã xóa xuất hiện lại khi nút được phân vùng có dữ liệu cũ tham gia lại cụm.
Eventual Consistency
Một mô hình nhất quán đảm bảo rằng nếu không có bản cập nhật mới nào được thực hiện thì tất cả các bản sao cuối cùng sẽ hội tụ về cùng một giá trị. Độ trễ lan truyền là thời gian cho đến khi hội tụ.
Write-Ahead Log (WAL)
Một kỹ thuật bền vững trong đó các thay đổi được ghi vào nhật ký tuần tự trước khi áp dụng vào cơ sở dữ liệu, cho phép khắc phục sự cố bằng cách phát lại nhật ký.

🏆 Nhân vật chính

Eric Brewer (2000)

Xây dựng Định lý CAP tại UC Berkeley, định hình cơ bản thiết kế cơ sở dữ liệu phân tán bằng cách chứng minh tính không thể đảm bảo đồng thời tính nhất quán, tính khả dụng và dung sai phân vùng

Leslie Lamport (1998)

Tạo ra thuật toán đồng thuận Paxos và đi tiên phong trong lý thuyết về hệ thống phân tán với các khái niệm như đồng hồ logic, dấu thời gian Lamport và Bài toán tổng quát Byzantine

Diego Ongaro (2014)

Đã thiết kế thuật toán đồng thuận Raft tại Stanford, làm cho sự đồng thuận phân tán trở nên dễ hiểu và thiết thực đối với các hệ thống trong thế giới thực như etcd và CockroachDB

Werner Vogels (2007)

Dẫn đầu thiết kế Dynamo của Amazon, giới thiệu hàm băm nhất quán, đồng hồ vectơ và số đại biểu cẩu thả — truyền cảm hứng cho Cassandra, Riak và toàn bộ phong trào NoSQL

Jeff Dean & Wilson Hsieh (2012)

Google Spanner được đồng thiết kế, cơ sở dữ liệu phân tán toàn cầu đầu tiên với các giao dịch nhất quán bên ngoài bằng cách sử dụng API TrueTime và đồng bộ hóa GPS/đồng hồ nguyên tử

Marc Shapiro (2011)

Tiên phong về các kiểu dữ liệu sao chép không xung đột (CRDT) tại INRIA, cung cấp nền tảng toán học cho tính nhất quán cuối cùng mà không cần phối hợp

🎓 Tài nguyên học tập

💬 Lời nhắn cho người học

Cơ sở dữ liệu phân tán là xương sống của Internet hiện đại. Mỗi khi bạn đăng lên mạng xã hội, phát trực tuyến video hoặc mua hàng trực tuyến, hàng chục nút cơ sở dữ liệu phân tán đang phối hợp ở hậu trường. Định lý CAP dạy chúng ta rằng sự hoàn hảo là không thể trong một thế giới nơi mạng lưới bị lỗi - và kỹ thuật đó là việc tạo ra sự cân bằng thông minh. Các khái niệm bạn khám phá ở đây — sao chép, đồng thuận, giải quyết xung đột — cũng chính là những thách thức mà các kỹ sư tại Google, Amazon và Netflix giải quyết hàng ngày. Việc hiểu những nguyên tắc cơ bản này sẽ giúp bạn đánh giá sâu sắc về cách thế giới kỹ thuật số thực sự hoạt động và có thể truyền cảm hứng cho bạn để xây dựng thế hệ hệ thống dữ liệu linh hoạt tiếp theo.

Bắt đầu

Miễn phí, không cần đăng ký

Bắt đầu →