Question:
- When and how is a Dynamodb GSI having a Partition Key and Sort Key partitioned?
- Is there a maximum size limit on GSI Partitions like table partitions?
- If yes then what happens when a uni-cardinal GSI (i.e. GSI having the same partition key across all records) exceeds the storage limit?
Answer:
1) See my answer here https://stackoverflow.com/a/51240423/4985580 for how tables are partitioned. A GSI is essentially just a new table, it is partitioned in the same way as your base table.
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.Partitions.html
Global secondary indexes in DynamoDB are also composed of partitions.
The data in a GSI is stored separately from the data in its base
table, but index partitions behave in much the same way as table
partitions.
2) Yes, 10GB
3) That’s an interesting question and I don’t have the answer. Dynamo accesses the correct partition based on the partition key of the data, so if you fill more than one partition with a single partition key, it seems likely you would have a problem. That said you’d probably need at least 2.5 Million items with the same partition key for this to happen (10GB/4KB). Is this a possible scenario for you?