1개의 큰 파티션에 대해서 query를 페이지네이터와 같이 사용할 때 실행빈도를 조절하지 않으면 파티션의 3,000RCU 제한에 걸려서 도중에 중단되나요?

0

예를들어 DynamoDB의 1개의 큰 파티션(RCU 3000000 규모라고 가정)에 대해서 GSI로 query한다고 가정하겠습니다. 이때 query실행은 https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/programming-with-python.html#programming-with-python-pagination 같은 aws sdk의 페이지네이터를 같이 사용하려 합니다. 페이지네이터를 사용할때 sleep을 사용해서 실행빈도를 조절하지 않으면 파티션의 RCU3000 제한에 걸려서 에러가 발생하고 도중에 중단되나요?

질문됨 3달 전163회 조회
1개 답변
1

안녕하세요.

우선 DynamoDB 의 파티션은 Partition Key 를 어떻게 분산해서 디자인하느냐에 따라 결정됩니다. 해당 파티션 키를 가능하면 다양한 값을 가지는 데이터로 설정하시는 것이 분산되어 저장되는 데 도움이 되며, RCU 의 영향도도 파티션에 따라 분산되므로 에러 발생을 줄일 수 있습니다. https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/bp-partition-key-uniform-load.html

GSI 의 할당량은 온디맨드 용량 모드라고 가정 시 테이블 수준 처리량 내에서 처리된다 볼 수 있으며, 테이블 당 각각 40,000 RCU 및 WCU 를 사용할 수 있습니다. https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/ServiceQuotas.html#default-limits-throughput-capacity-modes

재시도 로직이나 실행 빈도 조절 등은 여러 오류 상황을 처리하는 데 좋은 방법입니다. AWS SDK 에서는 자동 재시도 로직(예: 지수 백오프 알고리즘) 이 구현되어 있습니다만, 일부 클라이언트 오류의 경우에는 요청 자체를 수정하는 식으로 직접 처리하셔야 하는 경우들이 있으므로 처리 방법을 고민해 보시는 것이 필요합니다. https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff

참고

froguin
답변함 3달 전
  • 답변 감사합니다! 하지만 제가 궁금했던 내용은 질문 내용의 조건일 때 DynamoDB가 어떻게 동작하는지 여서 좀 더 기다려보려 합니다.

    • Partition Key 디자인이나 재시도 로직 관련 내용은 참고하도록 하겠습니다.
    • 온디맨드 용량 모드를 전제로 한 질문 맞습니다! 추측 감사합니다.

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인