Bài viết mới nhất

Halloween Problem – Lỗi cập nhật vô hạn trong Cơ sở dữ liệu
12 tháng 10, 2025

Halloween Problem – Lỗi cập nhật vô hạn trong Cơ sở dữ liệu

Halloween Problem là một hiện tượng bất ngờ nhưng có thật, trong đó một thao tác cập nhật (UPDATE, INSERT, DELETE) có thể khiến các hàng dữ liệu bị chọn và xử lý lặp đi lặp lại nhiều lần. Điều này có thể dẫn đến kết quả sai lệch nghiêm trọng, thậm ch...

Tại sao Kafka lại nhanh tới vậy?
9 tháng 9, 2023

Tại sao Kafka lại nhanh tới vậy?

Kafka được thiết kế để hỗ trợ một nền tảng thông lượng cao (throughput), phân tán (distributed), có khả năng chịu lỗi (fault-tolerant) với việc phân phối thông điệp có độ trễ thấp. Vậy Kafka được thiết kế như thế nào để đạt được độ trễ thấp như vậy? ...

Backward/Forward Compatibility trong Thiết kế Schema: Nguyên tắc và Thực tiễn
30 tháng 5, 2021

Backward/Forward Compatibility trong Thiết kế Schema: Nguyên tắc và Thực tiễn

Trong quá trình phát triển hệ thống, việc thay đổi cấu trúc dữ liệu (schema evolution) là điều không thể tránh khỏi. Giống như thiết kế kiến trúc phần mềm, việc định nghĩa schema cần được tính toán kỹ lưỡng để đảm bảo khả năng tương thích giữa các ph...

[Thanh tra ma giáo] Dgraph
6 tháng 4, 2021

[Thanh tra ma giáo] Dgraph

Chào mừng các bạn đến với series “Thanh tra ma giáo” – chuỗi bài viết chuyên điều tra và đánh giá các công nghệ trên thị trường. Mở đầu series, tôi xin giới thiệu ứng viên đầu tiên: Dgraph – một Graph Database nằm trong top 10 bảng xếp hạng DB-Engine...

Transaction Isolation 102: Isolation Level
1 tháng 1, 2021

Transaction Isolation 102: Isolation Level

Ở bài trước, chúng ta đã điểm mặt đặt tên những "kẻ phá hoại" kinh điển trong thế giới transaction: Dirty Write, Dirty Read, Lost Update, Write Skew và Read Skew. Vậy câu hỏi đặt ra là: Làm thế nào để chống lại chúng? Câu trả lời nằm ở việc lựa chọn ...

Transaction Isolation 101: Concurrency Control Problem
29 tháng 12, 2020

Transaction Isolation 101: Concurrency Control Problem

Trong bài viết "Bạn đã hiểu đúng về Transaction chưa?", tôi đã giới thiệu qua về ACID. Trong số 4 từ khóa, có lẽ Isolation (Sự cô lập) là thành phần phức tạp và được quan tâm nhiều nhất. Khi nhiều transaction chạy đồng thời, nếu mức độ cô lập không đ...

Bạn đã hiểu đúng về Transaction chưa?
15 tháng 12, 2020

Bạn đã hiểu đúng về Transaction chưa?

Trong thế giới cơ sở dữ liệu, "transaction" là một khái niệm cốt lõi nhưng thường bị hiểu nhầm. Mình bắt gặp rất nhiều cuộc trò chuyện về transaction trong Database, nhưng đa phần đều là những quan niệm sai lầm kiểu: "Database A có transaction còn D...

Database 303: Column-Oriented Storage
14 tháng 11, 2020

Database 303: Column-Oriented Storage

Trong các bài trước, chúng ta đã tìm hiểu về các loại index phổ biến như Hash Index, LSM-Trees hay B-Trees, vốn được thiết kế chủ yếu cho các hệ thống OLTP (xử lý giao dịch trực tuyến). Tuy nhiên, khi chuyển sang môi trường OLAP (xử lý phân tích trực...

Database 302: OLTP hay OLAP?
13 tháng 11, 2020

Database 302: OLTP hay OLAP?

OLTP và OLAP: Cách chọn lựa cho dự án của bạn?