Tìm hiểu về DynamoDB Adaptive Capacity – Năng lực dãn nở elasticity của Read & Write

DynamoDB Adaptive Capacity cho phép DynamoDB có khả năng xử lý tình huống khi có sự đọc hoặc ghi bất thường quá cao lên các partition, gọi là partition. Nếu bình thường nếu đọc ghi vượt quá năng lực của table thì sẽ bị một hiện tượng tắc nghẽn gọi là throttled.

Mỗi DynamoDB table có nhiều partition, mỗi partition có hard limit là 1,000 WCU, và 3,000 RCU.

Q1: DynamoDB Adaptive Capacity có cần cấu hình nào trước hay không?

A1: DynamoDB Adaptive Capacity được enable mặc định cho mọi DynamoDB table mà không cần cấu hình.

Q2: DynamoDB Adaptive Capacity có tính phí hay không?

A2: Tính năng này miễn phí.

Tuy nhiên việc giãn nở để đáp ứng yêu cầu đọc hoặc ghi cao của một partition nào đó cũng ko vượt (exceed) cấp phát tổng của table đó. Hãy cùng xem ví dụ bên dưới.

source: aws.amazon.com

ở ví dụ này DynamoDB table được cấp phát (provisioned) 400 WCU (Write Capacity Unit) tương đương 400 write request per second (mỗi item size tối đa 1KB). 400 WCU cấp phát cho 4 partitions, tương đương giới hạn của mỗi partition là 100 WCU.

Vấn đề chung là ko phải partition nào cũng có yêu cầu ghi (write) giống nhau. Các partition 1, 2, 3 tiêu dùng (consumed) 50 WCUs mỗi partition. Riêng partition 4 cần dùng tới 150 WCUs. DynamoDB tự động điều chỉnh (adaptive) ở Vùng 4 lên tới 150 WCU để ko bị nghẽn throttled.

Isolated frequently access items

Đây là tính năng rất hay khi mà DynamoDB có thể cô lập hay sắp xếp các item ở các partition khác nhau để tránh việc truy xuất vào một chỗ, dễ bị throttled.

Việc tái phân bổ (rebalance) những item mà truy xuất thường xuyên ko nằm trong cùng 1 partition cũng giúp đỡ bị vượt giới hạn của một partition nào đó. Giúp cân bằng truy xuất trên tổng các partition hơn.

Trong một số trường hợp đặc biệt tần số truy xuất vào 01 item đơn lẻ quá cao, tính năng DynamoDB Adaptive Capacity cũng có thể sắp xếp cho item này vào 01 partition riêng. Trong trường hợp này thru của partition này có thể tận dụng tối đa giới hạn của DynamoDB Partition Read / Write capacity là 1,000 WCU, và 3,000 RCU.

Lưu ý tính năng Isolated này ko hiện hữu trong các trường hợp sau:

  • Table có Local Secondary Index (LSI)
  • Provisioned Table mà có enable tính năng DynamoDB Streams.

Tham khảo:

%d bloggers like this: