Replication & Sharding
Ba mô-đun tương tác: (1) leader–follower sync/async + lag + failover, (2) sharding hash vs range + reshuffle khi thêm shard, (3) hotspot khi range partition lệch.
1 · Leader–Follower: replicate, lag & failover
Ghi một giá trị mới vào leader, xem nó lan sang follower. Đọc follower trong lúc đang lag sẽ thấy giá trị cũ.
Chế độ:
Synchronous (chờ follower)
Asynchronous (không chờ)
Leader & cả 2 follower đang ở balance = 300. Hãy ghi một giá trị mới.
2 · Sharding: hash vs range, và reshuffle khi thêm shard
12 key (user_id 100–111) được phân vào các shard. Đổi chiến lược, đổi số shard, rồi xem có bao nhiêu key phải di chuyển (viền cam).
Chiến lược:
Hash (mod N)
Range (theo khoảng id)
Consistent hashing
3 · Hotspot khi range partition lệch
Chia dân số Việt Nam theo chữ cái đầu của họ. "Nguyễn" chiếm ~38% → shard chứa "N" quá tải. Bấm để xem so sánh với hash rải đều.
Range theo chữ cái (lệch)
Hash (rải đều)