Transaction phân tán
DDIA Ch7 (mở rộng ra cluster) — ôn ACID & isolation từ single-node, anomaly & serializability, two-phase commit (2PC) và vì sao nó blocking + đắt, và khi nào nên tránh distributed transaction (saga/idempotency). Recall ACID/isolation ở SQL và happens-before ở Java.
Nội dung
Danh sách bài học
- 01~10 phút
Module 4 — Transaction phân tán: tổng quan
Từ giao dịch trên một node tới nhiều node: anomaly & serializability, two-phase commit, và vì sao thường nên TRÁNH distributed transaction.
- 02~12 phút
Từ ACID single-node tới giao dịch phân tán
Ôn ACID và isolation ở một node rồi hỏi: điều gì vỡ khi giao dịch trải trên nhiều node? Cầu nối từ khoá SQL sang bài toán phân tán.
- 03~12 phút
Anomaly & serializability — lost update, write skew, SSI
Các anomaly khi nhiều giao dịch đồng thời: lost update, write skew, phantom; serializability là chuẩn vàng, và cách đạt nó (2PL, SSI) cùng cái giá.
- 04~12 phút
Two-phase commit (2PC) — và vì sao nó blocking, đắt
2PC để atomic commit xuyên nhiều node: coordinator + prepare/commit hai pha. Vì sao coordinator chết giữa chừng làm participant treo (blocking), và giá phải trả.
- 05~12 phút
Khi nào tránh distributed transaction — saga & idempotency
Vì 2PC đắt và mong manh, nhiều hệ tránh distributed transaction: saga (chuỗi giao dịch cục bộ + bước bù trừ), idempotency, outbox. Đánh đổi so với atomic thật.
- 06~9 phút
Module 4 — Tổng kết & cheat sheet
Recap transaction phân tán: anomaly & serializability, 2PC (blocking, đắt), và khi nào tránh bằng saga/idempotency. Cheat sheet, glossary, self-assessment.