Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Amazon SDB - PUTS per second limit explained?

I believe the max PUT requests to Amazon's Simple DB is 300?

What happens when I throw 500 or 1,000 requests to it? Is it queued on the Amazon side, do I get 504's or should I build my own queuing server on EC2?

like image 392
leonthelion Avatar asked Jan 21 '23 00:01

leonthelion


2 Answers

The max request volume is not a fixed number, but a combination of factors. There is a per-domain throttling policy but there seems to be some room for bursting requests before throttling kicks in. Also, every SimpleDB node handles many domains and every domain is handled by multiple nodes. The load on the node handling your request also contributes to your max request volume. So you can get higher throughput (in general) during off-peak hours.

If you send more requests than SimpleDB is willing or able to service, you will get back a 503 HTTP code. 503 Service unavailable responses are business as usual and should be retried. There is no request queuing going on within SimpleDB.

If you want to get the absolute max available throughput you have to be able to (or have a SimpleDB client that can) micro manage your request transmission rate. When the 503 response rate reaches about 10% you have to back off your request volume and subsequently build it back up. Also, spreading the requests across multiple domains is the primary means of scaling.

I wouldn't recommend building your own queuing server on EC2. I would try to get SimpleDB to handle the request volume directly. An extra layer could smooth things out, but it won't let you handle higher load.

like image 60
Mocky Avatar answered Feb 23 '23 12:02

Mocky


I would use the work done at Netflix as an inspiration for high throughput writes: http://practicalcloudcomputing.com/post/313922691/5-steps-simpledb-performance

like image 35
user726816 Avatar answered Feb 23 '23 12:02

user726816