2017-02-10 2 views
0

상황 :하는 API와불일치 읽기를 사용하는 DynamoDB 클라이언트를 통합 테스트합니까?

  1. 웹 서비스는 DynamoDB의 레코드를 읽을 수 있습니다. 그것은 결국 일관된 읽기 사용 (GetItem 기본 모드)
  2. 두 단계로 구성된 통합 테스트 :
    • 는 예상 된 결과
    • 를 반환하는지 확인 DynamoDB의에서
    • 전화 서비스를 테스트 데이터를 생성

데이터의 일관성으로 인해이 테스트가 깨지기 쉽습니다.

나는 단지 데이터가 DB 복사의 대부분에 기록 된 것을 보장 GetItemwithConsistenRead=true를 사용하여 작성 후 즉시 데이터를 확인하려고, 전부는 아니지만, 그래서 테스트중인 서비스가 여전히 읽을 기회가있는 경우

다음 단계에서 업데이트되지 않은 사본에서.

진행하기 전에 데이터가 모두 DynamoDB 복사본으로 작성되었는지 확인하는 방법이 있습니까?

답변

1

데이터는 일반적으로 에있는 모든 지리적으로 분산 된 복제본에 도달합니다.

웹 서비스를 호출하기 전에 원하는 결과를 얻으려면 몇 초 동안 기다려야합니다.

DynamoDB 테이블에 데이터를 삽입 한 후 웹 서비스를 호출하기 전에 몇 초 동안 기다리십시오.

결국 일관성있는 읽기 (기본값) - 궁극적 일관성 옵션은 읽기 처리량을 최대화합니다. 그러나 결과적으로 의 일관성있는 읽기에는 최근 작성한 글의 결과가 반영되지 않을 수 있습니다. 모든 데이터 사본의 일관성은 보통 초 내에 도달합니다. 잠시 후 읽기를 반복하면 업데이트 된 데이터가 반환됩니다.

관련 문제