Posts for: #System-Design

Dấu Trang

Tiếng Việt, when?

Phần lớn các nguồn tài liệu ở đây, nếu không muốn nói là tất cả, đều là tiếng Anh. Nên nếu bạn có thể đọc được chúng thì mình cũng mặc định bạn sẽ hiểu được những gì mình viết ở trang này.

These are some of the resources I found or stumbled upon on the internet throughout my life; most of the things here I personally found to be valuable and/or funny. I try to only add free web content here, so that you only need a web browser to access, no bs required. Enjoy! Hope you like it.

Đọc tiếp →

CAP vs ACID vs BASE?!

CAP vs ACID vs BASE?!

Khi tìm hiểu về database, chúng ta thường nghe đến các khái niệm như định lý CAP, tính chất ACID, tính chất BASE. Các khái niệm này là gì mà đi đâu ta cũng gặp phải? Hãy cùng tôi tìm hiểu trong bài này!

CAP nghĩa là cái nón?

CAP là từ viết tắt của Consistency, Availability, Partition-tolerance được giới thiệu bởi Eric Brewer vào năm 2000 trong một buổi diễn thuyết. Brewer cho rằng, trong một hệ thống phân tán (distributed system) khi một sự kiện chia cách (network partition) xảy ra, hệ thống chỉ có thể lựa chọn giữa consistency hoặc availability. Vậy ba tính chất này là gì mà các hệ thống phân tán lại muốn có, và tại sao chúng không thể cùng lúc thoả mãn cả ba?

Đọc tiếp →

Dual Write

Dual Write

Khi làm việc với các hệ thống backend, thường có một pattern hay được sử dụng để xử lý dữ liệu nhận được. Chúng ta thường sẽ có một máy chủ chờ để nhận dữ liệu từ một message broker hoặc là qua một API nào đó. Khi dữ liệu này được truyền tới máy chủ, ta thường sẽ phải xử lý chuẩn hoá dữ liệu này theo logic nghiệp vụ. Dữ liệu này sẽ được lưu trữ vào database sau khi đã được xử lý. Và bước cuối cùng của quá trình này thường sẽ là máy chủ tiếp tục gửi dữ liệu đã được xử lý này đến các hệ thống, máy chủ tiếp theo để thực hiện xử lý tiếp nghiệp vụ. Quá trình này được gọi là dual write, hay còn được gọi là multi-write hoặc sync-write.

Đọc tiếp →