Skip to main content

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:

  1. Item thay đổi (Insert/Update/Delete).
  2. Stream capture sự kiện.
  3. 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.