Phân mảnh (partitioning)
DDIA Ch6 — khi dữ liệu quá lớn cho một node, chia nó ra: partition theo key-range vs hash (hot spot, skew), consistent hashing & rebalancing, secondary-index partitioning (local vs global), và request routing. Recall consistent-hashing, hash-function, inverted-index.
Nội dung
Danh sách bài học
- 01~10 phút
Module 3 — Phân mảnh (Partitioning): tổng quan
Khi dữ liệu quá lớn cho một node, chia nó ra nhiều partition. Cách chia (range vs hash), consistent hashing & rebalancing, secondary index và request routing.
- 02~12 phút
Partition theo key-range vs hash — và bài toán hot spot
Hai cách chia dữ liệu ra partition: theo dải khoá (range) giữ thứ tự nhưng dễ hot spot, hay theo hash phân bố đều nhưng mất range query. Đánh đổi và skew.
- 03~12 phút
Consistent hashing & rebalancing — thêm/bớt node ít xáo trộn
Hash mod N làm thêm/bớt node phải xáo lại gần hết dữ liệu. Consistent hashing chỉ di chuyển phần nhỏ; virtual node cân bằng tải. Chiến lược rebalancing.
- 04~12 phút
Secondary index phân mảnh — local (document) vs global (term)
Index phụ khó phân mảnh vì nó cắt ngang cách chia dữ liệu chính. Hai cách: local (document-partitioned) rẻ ghi đắt đọc, global (term-partitioned) ngược lại.
- 05~11 phút
Request routing — tìm đúng node giữ dữ liệu
Chia dữ liệu ra nhiều node xong, client làm sao biết hỏi node nào cho một khoá? Ba cách route, dịch vụ coordination, và giữ mapping đúng khi partition di chuyển.
- 06~9 phút
Module 3 — Tổng kết & cheat sheet
Recap partitioning: range vs hash, consistent hashing & rebalancing, secondary index (local/global), request routing. Cheat sheet, glossary, self-assessment.