Trong thiết kế hệ thống chịu tải cao, khái niệm Database Sharding là gì và làm thế nào để giải quyết vấn đề Rebalancing dữ liệu khi thêm các Shard mới?
Database Sharding là kỹ thuật phân mảnh cơ sở dữ liệu thành các phần nhỏ hơn và lưu trữ trên các server khác nhau để tăng khả năng mở rộng ngang (Horizontal Scaling). Vấn đề lớn nhất là Rebalancing dữ liệu khi thêm Shard mới. Để giải quyết, chúng ta nên sử dụng Consistent Hashing thay vì thuật toán Modulo truyền thống. Với Consistent Hashing, khi thêm một node mới, chỉ một phần nhỏ dữ liệu cần phải di chuyển thay vì toàn bộ dữ liệu. Ngoài ra, có thể sử dụng Virtual Nodes để phân bổ dữ liệu đồng đều hơn trên các vật lý server, tránh hiện tượng Hotspot.
Khóa học System Design & High Scalability
Hệ thống khóa học thực chiến chuẩn Enterprise giúp bạn tự tin chinh phục mọi kỳ phỏng vấn kỹ thuật và thăng tiến thu nhập.
Tải Tuyển Tập 100+ Câu Hỏi Phỏng Vấn Chuyên Sâu (PDF)
Bộ tài liệu chuẩn Senior do Unicode Academy tuyển chọn & biên soạn, hỗ trợ tải về định dạng PDF chuẩn in ấn.
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?
Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.
Kiểm Tra CV Chuẩn ATS Miễn Phí
Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.
Câu hỏi system design liên quan cùng chủ đề
- Khi thiết kế một hệ thống web hướng tới người dùng ở nhiều khu vực địa lý khác nhau, anh chị sẽ áp dụng mô hình Content Delivery Network kết hợp với cơ chế Browser Caching như thế nào để tối ưu hóa thời gian tải trang ban đầu? Junior
- Trong quá trình xây dựng các ứng dụng web hiện đại, tại sao chúng ta cần sử dụng Reverse Proxy như Nginx trước các Application Server, và nó giúp giải quyết những bài toán cốt lõi nào về bảo mật cũng như hiệu năng? Junior
- Khi thiết kế một hệ thống đăng nhập đơn giản, anh chị sẽ lựa chọn giữa phương pháp xác thực dựa trên Stateful Session và Stateless JSON Web Token trong những kịch bản nào, và cần lưu ý gì về bảo mật? Junior
- Trong quá trình tối ưu hóa cơ sở dữ liệu quan hệ cho các hệ thống có lưu lượng đọc lớn, tại sao Database Index lại quan trọng và những rủi ro nào cần tránh khi lạm dụng đánh index? Junior
- Khi hệ thống của anh chị phải đối mặt với các đợt lưu lượng truy cập đột biến (Traffic Spikes), giải pháp Auto-Scaling và Message Queue đóng vai trò như thế nào để bảo vệ hệ thống khỏi tình trạng quá tải sập nguồn? Junior


