Hệ thống Dữ liệu Phân tán/Module 3 — Phân mảnh (Partitioning): tổng quan
14/38
Bài 14 / 38~10 phútPhân mảnh (partitioning)Miễn phí lượt xem

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.

TL;DR: Partitioning (còn gọi sharding) là chia một tập dữ liệu lớn thành nhiều partition, mỗi partition đặt trên một node khác nhau — để dữ liệu và tải vượt quá sức một máy vẫn chứa và phục vụ được. Replication (Module 2) giữ cùng dữ liệu trên nhiều bản; partitioning chia khác dữ liệu ra nhiều nơi. Hai thứ thường đi cùng: mỗi partition lại được nhân bản. Câu hỏi cốt lõi của module: chia thế nào cho tải phân bố đều (tránh một node quá nóng — hot spot) và tìm lại dữ liệu ở đâu (routing) khi partition di chuyển lúc thêm/bớt node.

Vì sao module này tồn tại

Replication giúp chịu lỗi và chia tải đọc, nhưng mỗi bản vẫn phải chứa toàn bộ dữ liệu. Khi dữ liệu vượt sức một máy — hoặc tải ghi vượt sức một leader — nhân bản không cứu được; phải chia nhỏ dữ liệu ra nhiều node, mỗi node giữ một phần.

Việc chia đặt ra hai bài toán mới mà một máy không có: (1) chia sao cho không node nào quá tải (hot spot/skew), và (2) khi client cần một khoá, làm sao biết nó nằm ở node nào — nhất là khi các partition dịch chuyển lúc cụm co giãn. Module này giải cả hai.

Sau module này bạn sẽ

  • Compare partition theo key-range vs hash và giải thích hot spot, skew
  • Explain consistent hashing và rebalancing khi thêm/bớt node
  • Design secondary-index partitioning (local vs global) và request routing

Lộ trình module

flowchart LR
  A["01 Range vs hash<br/>+ hot spot"] --> B["02 Consistent hashing<br/>+ rebalancing"]
  B --> C["03 Secondary index<br/>local vs global"]
  C --> D["04 Request routing<br/>tim node nao"]

Bắt đầu ở bài Range vs hash: hai cách chia cơ bản và đánh đổi hot spot ↔ range query. Rồi consistent hashing — cách thêm/bớt node mà ít xáo trộn dữ liệu. Rồi secondary index phân mảnh (khó vì index phụ cắt ngang cách chia chính). Khép bằng request routing: client tìm đúng node giữ khoá thế nào.

Yêu cầu trước khi bắt đầu

  • Module 2 (Replication) — partitioning và replication đi cùng nhau; mỗi partition thường lại được nhân bản.
  • Có ích: consistent hashinghash function (track Thuật toán) — module recall trực tiếp.

Cách học module này hiệu quả

  • Giữ trong đầu hai câu hỏi xuyên suốt: tải có đều không (hot spot)?tìm dữ liệu ở đâu (routing)? Mỗi kỹ thuật trả lời một trong hai.
  • Luôn nhớ partition không sống một mình: nó nằm cạnh replication. "Node giữ partition P" thực ra là "nhóm bản của partition P".
  • Ở bài consistent hashing, nối thẳng về cơ chế đã học ở track thuật toán — module này là ứng dụng hệ thống của nó.

Bài này có giúp bạn hiểu bản chất không?

Hỏi đáp về bài này

Chưa có câu hỏi

Đặt câu hỏi

Có gì chưa rõ trong bài? Đặt câu hỏi đầu tiên — câu trả lời từ cộng đồng giúp bạn (và người sau).

Đặt câu hỏi đầu tiên