-1

Scenario:

If I read/ write an item of 10Bytes, Dynamo DB rounds up the throughput to 4Kb for read and 1Kb for write. If my entire DB consists of items which are 10-50 Bytes and I expect around 10 read/write operations per second, it becomes very inefficient.

Question:

Is there a way to overcome this and use the entire potential of every throughput

1 Answers1

0

Here are the rules for "Capacity Unit Consumption for Reads":

GetItem—reads a single item from a table. To determine the number of capacity units GetItem will consume, take the item size and round it up to the next 4 KB boundary. If you specified a strongly consistent read, this is the number of capacity units required. For an eventually consistent read (the default), take this number and divide it by two.

For example, if you read an item that is 3.5 KB, DynamoDB rounds the item size to 4 KB. If you read an item of 10 KB, DynamoDB rounds the item size to 12 KB.

see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/CapacityUnitCalculations.html

So maybe you could switch to eventually consistent read.

For PutItem and UpdateItem:

For PutItem, UpdateItem, and DeleteItem operations, DynamoDB rounds the item size up to the next 1 KB. For example, if you put or delete an item of 1.6 KB, DynamoDB rounds the item size up to 2 KB.

disco crazy
  • 31,313
  • 12
  • 80
  • 83