SYSTEM DESIGN CƠ BẢN – PHẦN 17: MÔ HÌNH VỀ TÍNH NHẤT QUÁN ACID VÀ BASE by hoangedward Khi nói đến cơ sở dữ liệu NoSQL, các mô hình nhất quán dữ liệu đôi khi có thể khác biệt đáng kể so với các cơ sở dữ liệu quan hệ được sử dụng (cũng như khá khác biệt so với các cơ sở dữ liệu NoSQL khác). Hai mô hình nhất quán phổ biến nhất được biết đến bởi các từ viết tắt ACID và BASE. Mặc dù chúng thường đọ sức với nhau trong một trận chiến để giành chiến thắng cuối cùng, cả hai mô hình nhất quán đều có ưu điểm – và nhược điểm – và không phải lúc nào cũng phù hợp hoàn hảo. Chúng ta hãy xem xét kỹ hơn về sự đánh đổi của cả hai mô hình nhất quán cơ sở dữ liệu. ACID Nhiều developer đã quen thuộc với các ACID transaction khi làm việc với các cơ sở dữ liệu quan hệ. Như vậy, mô hình nhất quán ACID đã trở thành chuẩn mực trong một thời gian. ACID là 1 tập hợp các thuộc tính mà 1 transaction (giao dịch) thao tác với database phải đạt được nhằm bảo đảm tính toàn vẹn, hợp lệ, an toàn, tính bền vững...
SYSTEM DESIGN CƠ BẢN – PHẦN 1: CÁCH TÍNH CHẤT CHÍNH CỦA MỘT HỆ THỐNG PHÂN TÁN Posted on April 28, 2020 by hoangedward Cùng với Algorithm thì System Design là một phần rất quan trọng trong phỏng vấn và tuyển dụng, nhất là bạn ứng tuyển với vị trí từ Senior trở lên. Và để cùng tôi chuyển bị tốt cho đợt phỏng vấn tuyển dụng sắp tới, ta hãy cùng nhau tìm hiểu về những điều cơ bản và sơ lược nhất về thiết kế hệ thống nhé. Nói trước đây là một bài viết siêu dài, mời các bạn hãy ngồi xuống thư giãn và làm ly trà sữa cho tăng mood và bật nhạc thư giãn trước khi đọc bài nhé. Hệ thống phân tán (distributed system) là hệ thống phần mềm mà các thành phần cấu tạo nên nó nằm ở trên các máy tính khác nhau được kết nối thành mạng lưới (network). Các máy tính này phối hợp hoạt động với nhau để hoàn thành một nhiệm vụ chung bằng cách trao đổi qua lại các thông điệp (message) Nói nôm na là hệ thống phân tán là việc hệ thống bạn có nhiều quá trì...
SYSTEM DESIGN CƠ BẢN – PHẦN 10: CONSISTENT HASHING by hoangedward Xem bài viết gốc của tác giả @batnamv tại Medium Như đã nhắc đến rất nhiều lần bên trên thì Distributed Hash Table (DHT — Bảng băm phân tán) là một thành phần cơ bản trong những distributed scalable systems (hệ thống phân tán có khả năng mở rộng). Một Hash Table cần một cặp key-value , và một hàm “hash” để map key với vị trí mà value của nó được lưu trữ. index = hash_function(key) Giả sử ta có thiết kế một distributed caching system (Redis cache chẳng hạn). Chúng ta có “n” cache servers, thì hàm băm (hash function) để map key với vị trí của Cach server nó làm ở đâu sẽ là key % n . Nó rất đơn giản và dễ sử dụng, tuy nhiên nó có hai nhược điểm chính là: Nó rất khó horizontally scalable (phân tán theo chiều ngang). Bởi vì mỗi lần một cache server mới được thêm vào LB, mọi mapping trước khia giữa key với value nó được lưu trữ ở đâu sẽ sai toét hết. Hiện tượng cache miss s...
Nhận xét
Đăng nhận xét