Amazon DynamoDB Deep Dive
NoSQL Database hiệu năng cao, single-digit millisecond latency.
1. Core Concepts & Partitioning
DynamoDB lưu dữ liệu phân tán trên nhiều partition dựa trên Partition Key (PK).
Hot Partition
Nếu chọn PK không tốt (VD: Status=Active), tất cả request dồn vào 1 partition. Partition đó bị quá tải (Throttling) trong khi các partition khác rảnh rỗi. -> Hãy chọn PK có độ phân tán cao (UserId, OrderId).
2. Indexes (LSI vs GSI)
- Local Secondary Index (LSI): Chỉ tạo được khi tạo bảng. Cùng PK, khác Sort Key (SK). Chia sẻ throughput với bảng chính.
- Global Secondary Index (GSI): Tạo lúc nào cũng được. PK và SK hoàn toàn mới. Có throughput riêng.
GSI Over LSI
Luôn ưu tiên dùng GSI. Nó linh hoạt hơn và không bị giới hạn kích thước item collection (10GB) như LSI.
3. DynamoDB Streams & Triggers
Mô hình Event-driven:
- Item thay đổi (Insert/Update/Delete).
- Stream capture sự kiện.
- Trigger Lambda function để xử lý (VD: Gửi email, sync sang Elasticsearch).
4. DAX (DynamoDB Accelerator)
In-memory cache dành riêng cho DynamoDB.
- Không cần sửa code (DAX tương thích API DynamoDB).
- Giảm latency từ miliseconds -> microseconds.