서버 에러 확인해주세요

에러가 발생한 경우 아래 정보를 모두 제공해주시면 보다 정확한 답변이 가능합니다!

  • SDK 버전 :
  • 에러 코드 :
  • 스테이터스 코드 :
  • 에러메시지 :

Throughput exceeds the current capacity for one or more global secondary indexes. DynamoDB is automatically scaling your index so please try again shortly.,ErrorCode_ThrottlingException

지금부터 슈퍼인턴입니다. 오늘 DB에 문제가 있어서 서버가 터졌었는데 말씀하신데로 변경했지만 해당 에러가 유저들한테 지속적으로 발생하고 있습니다. 찾아보니까 서버를 추가하는 과정에서 입력이 무시되는거같은데 또 서버가 터지지 않게 조치 부탁드립니다.

안녕하세요 개발자님,
6월 21일 진행된 뒤끝 콘솔, 커뮤니티의 서버 작업은 게임 서버와 완전히 별개로 이루어진 작업입니다.

현재 ‘지금부터 슈퍼인턴’ 프로젝트에서 발생 중인 DB 오류는 클라이언트 로직에 의해 발생된 문제로 BackupData 및 UserData 두 개 테이블을 읽고 쓰는 이용 방식에서 발생하는 문제로 확인됩니다.

BackupData 테이블의 이용 방식은 뒤끝 개발 부서에서 안내드린 내용으로 수정을 진행하신 후 21일 22시 앱 배포를 통해 개선된 것으로 확인됩니다.
UserData 테이블은 아직 수정이 이루어지지 않은 것으로 확인되니 코드를 수정해주세요.
수정된 앱이 배포되면 해당 DB 오류가 해결될 것입니다.
감사합니다.

로그인할때 딱 1번 테이블이 있는지 1개 체크하는건데 그게 문제가 되나요? public도 아니고 private에 자기자신의 데이터를 불러오는겁니다. 통화로 확인해보니 100kb정도라는데 이게 그렇게 큰건가요?

안녕하세요.
관련하여 확인중에 있습니다.
개발자님의 말씀대로 private 테이블에서 자신의 정보를 불러오는 것은 문제의 원인이 아닌 것으로 판단됩니다.

확인 후 다시 답변드리겠습니다.
이용에 불편을 드려 죄송합니다.

안녕하세요.
해당 이슈에 대해서 확인을 하고 싶은 것이 있습니다.
1.서버 요청에 실패 할 경우 재시도를 몇번 수행하고 있는지
2.1개의 값을 업데이트 하실때 inDate값이 아닌 where절로 검색을 하고 있는지

이 2가지에 대해 확인 부탁드리겠습니다.

  1. 데이터 업데이트와 로그를 찍는 과정에서 요청이 실패하면 따로 재시도하지 않고있습니다. 관리용 public 테이블 ServerLock만 3번 정도 다시 요청합니다.
  2. where절을 사용하고 있습니다. owner_inDate 값만 equal로 넣어서 사용중입니다.

statusCode_429
ErrorMessage_ProvisionThroughputExceededException,ErrorCode_ProvisionThroughputExceededException
이 에러도 지속적으로 보이고 있습니다. 할달량을 늘려주시기로 하셨는데 정상적으로 늘어난게 맞나요?

안녕하세요 개발자님

현재 할당량 상향조치 하였으나 더 높은 용량을 요구하여 발생한것으로 확인됩니다.
할당량은 오토스케일링이 적용되어있어 자동으로 확장됩니다.
지속적으로 할당량을 초과하여 오토스케일링 일어나 해당 오류가 발생할 수 있는 점 참고부탁드립니다.


또한, 이 ErrorCode_ThrottlingException 오류가 발생하는 근본적인 원인은 위에서 말씀드린 UserData와 BackupData의 Get으로 인한 문제가 아니라, where절을 사용하여 Update를 하는 부분에서 발생한 것으로 확인이 되었습니다.

Update를 하실때 where절을 사용하지 마시고, inDate를 사용하면 해당 문제가 해결될 것입니다.
해당 inDate값은 owner_inDate가 아닌 row의 inDate인 점 말씀드립니다.

원인 파악에 시간이 지체되어 죄송합니다.

결국 inDate값을 알기위해 where를 쓸수밖에 없지 않나요? owner_inDate는 유저가 가입한시간같고 inDate는 해당 row가 쓰여진 시간인거 같은데 inDate값은 각 테이블 마다 row마다 다르고 owner_inDate는 다 같죠 그래서 이걸 썼던건데 private인데도 where를 쓸수 없을만큼 부하가되나요? 그럼 where는 언제 써야하나요? 저희 유저수가 겨우 5천입니다. 5천개를 다 찾는다해도 이건 말이 안되지 않나요? 또 개발자 페이지 어디를 찾아봐도 그런내용이 없는데 제가 잘 못만든건가요? 정말 너무 화가납니다.
있는 기능을 사용했고 거기에 어떤 경고도 문제도 없었는데 서버가 터지고 있어요. 상식적으로 정말 제가 기능을 잘못써서 생긴 문제가 맞나요?
다른 개발사는 어떻게 이용하고 있나요? where사용을 안하시나요?

만약 로컬에 저장해야한다고하면 로컬데이터가 깨졌을때 대처는요? 결국 where를 사용해야하는거 아닌가요?

튜토리얼에서도 그런내용이 없었어요 그냥 GetMyData 이거뿐이였는데 대체 왜 그게 문제가 되는겁니까

개발자 문서에 보다 상세한 설명이 제공되지 못하여 죄송합니다.
GetMyData를 활용하시면 해당 row의 inDate를 받아오실 수 있습니다.
확인 시 Update에서 where절 사용에 있어서 해당 문제는 오류가 맞고, 현재 수정중에 있습니다.
빠르게 수정하여 다음 업데이트 시 SDK에 반영하여 배포될 수 있도록 하겠습니다.
오류로 인해 이용에 불편드린 점 다시 한번 깊이 사과드립니다.

신규 버전을 업데이트했습니다. 말씀하신데로 inDate값으로 값을 수정하게 변경하였는데 전체 사용자에게 적용된건 오늘 오후 3시 이후입니다. 어제와 오늘의 사용량을 비교하여 문제가 해결됐는지 알려주실수 있으실까요?

안녕하세요 개발자님,
확인 시 3시 이후 사용량 문제가 해결된 것으로 확인됩니다.
더불어 문제가 되던 ErrorCode_ThrottlingException 또한 3시 이후로는 발생하지 않는 것으로 확인됩니다.
감사합니다.

좋아요 1