DynamoDB is a minimalistic NoSQL engine provided by Amazon as a part of their AWS product.
DynamoDB allows you to stores documents composed of unicode strings or numbers as well as sets of unicode strings and numbers. Each tables must define a hash key and may define a range key. All other fields are optional.
Dynamodb-mapper brings a tiny abstraction layer over DynamoDB to overcome some of the limitations with no performance compromise. It is highly inspired by the mature MoongoKit project
- Boto = 2.6.0
- AWS account
To avoid superfluous DescribeTable requests, Table objects are cached after their first request. As it removes an extra overhead of ~20ms that was before each requests, it might let you go faster than your provisioned throughput. This will trigger an exponential backoff retry algorithm in Boto. While this algorithm is well done, be informed that the resulting effective throughput will be up to 40% slower than what you could have expected with your configured throughput.
If you ever reach this situation, you have 2 options:
- either increase (if bandwith allows) your provisioned throughput.
- either introduce manual, carefully chosen sleeps.
With the second option, I have been able to reach the theoretical throughput on an extremely intensive and non representative benchmark.