2014-10-03 1 views
0

:어떻게 프로비저닝 처리 할 수있는 문서에서 예제를 사용하여 처리량 예외 DynamoDB의의 query_2

>>> rev_with_d = users.query_2(
...  account_type__eq='standard_user', 
...  last_name__beginswith='D', 
...  reverse=True, 
...  limit=2 
...) 

>>> for user in rev_with_d: 
...  print user['first_name'] 
'John' 
'Jane' 

어떻게 예외가이 경우에 처리 처리량 것인가?

각 루프마다 지수 백 오프를 사용해 보았지만 예외가 잡히지 않습니다.

편집 : 요청에 의해

역 추적 :

Traceback (most recent call last): 
    File "kgraph.py", line 51, in <module> 
    for user in rev_with_d: 
    File "/Library/Python/2.7/site-packages/boto/dynamodb2/results.py", line 62, in __next__ 
    self.fetch_more() 
    File "/Library/Python/2.7/site-packages/boto/dynamodb2/results.py", line 146, in fetch_more 
    results = self.the_callable(*args, **kwargs) 
    File "/Library/Python/2.7/site-packages/boto/dynamodb2/table.py", line 1132, in _query 
    **kwargs 
    File "/Library/Python/2.7/site-packages/boto/dynamodb2/layer1.py", line 1522, in query 
    body=json.dumps(params)) 
    File "/Library/Python/2.7/site-packages/boto/dynamodb2/layer1.py", line 2100, in make_request 
    retry_handler=self._retry_handler) 
    File "/Library/Python/2.7/site-packages/boto/connection.py", line 937, in _mexe 
    status = retry_handler(response, i, next_sleep) 
    File "/Library/Python/2.7/site-packages/boto/dynamodb2/layer1.py", line 2134, in _retry_handler 
    response.status, response.reason, data) 
boto.dynamodb2.exceptions.ProvisionedThroughputExceededException: ProvisionedThroughputExceededException: 400 Bad Request 
{u'message': u'The level of configured provisioned throughput for the table was exceeded. Consider increasing your provisioning level with the UpdateTable API', u'__type': u'com.amazonaws.dynamodb.v20120810#ProvisionedThroughputExceededException'} 
+1

제공 할 수있는 백 트레이스가 있습니까? 아니면 가상의 상황을 묻고 있습니까? 또한 boto는 이미 지수 적 백 오프가 내장되어 있습니다. DynamoDBConnection.NumberRetries 속성을 설정하여 원하는대로 설정하면됩니다. 기본값은 10입니다. – Endophage

+0

이것이 내가 찾던 해답이라고 생각합니다. 감사합니다 – user602525

+0

그래, boto가 그 오류를 제기 할 때쯤에는 이미 쿼리를 꽤 자주 실행하려고했습니다. – Endophage

답변

2

난 당신이 더 나은 query_2max_page_size 매개 변수를 설정 생각합니다.
테이블의 읽기 처리량 및 항목 크기를 기반으로하는 값을 설정해야합니다.