읽기 정합성 - Amazon DynamoDB

읽기 정합성

Amazon DynamoDB는 테이블, 로컬 보조 인덱스(LSI), 글로벌 보조 인덱스(GSI), 스트림에서 데이터를 읽습니다. 자세한 내용은 Amazon DynamoDB의 핵심 구성 요소 단원을 참조하십시오. 테이블과 LSI 모두 최종 읽기 일관성(기본값)과 강력히 일관된 읽기라는 두 가지 읽기 일관성 옵션을 제공합니다. GSI와 스트림에서의 모든 읽기는 최종적으로 일관됩니다.

애플리케이션이 DynamoDB 테이블에 데이터를 쓰고 HTTP 200 응답(OK)을 받으면 쓰기가 성공적으로 완료되고 지속적으로 유지된 것입니다. DynamoDB는 읽기 커밋됨 격리를 제공하고 읽기 작업이 항상 항목에 대해 커밋된 값을 반환하도록 합니다. 읽기는 결국 성공하지 못한 쓰기의 항목을 절대 보여 주지 않습니다. 읽기 커밋됨 격리는 읽기 작업 직후에 항목에 대한 수정을 막지 않습니다.

최종적 일관된 읽기

최종적 일관성은 모든 읽기 작업의 기본 읽기 일관성 모델입니다. DynamoDB 테이블이나 인덱스에 최종 읽기 일관성을 실행할 때 최근에 완료된 쓰기 작업의 결과가 응답에 반영되지 않을 수 있습니다. 잠시 후 읽기 요청을 반복하면 응답이 결국 보다 최근 항목을 반환합니다. 최종 읽기 일관성은 테이블, 로컬 보조 인덱스, 글로벌 보조 인덱스에서 지원됩니다. 또한 DynamoDB 스트림에서의 모든 읽기도 최종적으로 일관됩니다.

최종 읽기 일관성의 비용은 강력히 일관된 읽기 비용의 절반입니다. 자세한 내용은 Amazon DynamoDB 요금을 참조하세요.

강력한 일관된 읽기(Strongly Consistent Read)

GetItem, Query, Scan 같은 읽기 작업은 선택적 ConsistentRead 파라미터를 제공합니다. ConsistentRead를 true로 설정하면 DynamoDB는 성공한 모든 이전 쓰기 작업의 업데이트가 반영된 최신 데이터가 포함된 응답을 반환합니다. 강력히 일관된 읽기는 테이블과 로컬 보조 인덱스에서만 지원됩니다. 글로벌 보조 인덱스 또는 DynamoDB 스트림에서의 강력히 일관된 읽기는 지원되지 않습니다.

글로벌 테이블 읽기 일관성

DynamoDB는 다중 활성 및 다중 리전 복제를 위한 글로벌 테이블도 지원합니다. 글로벌 테이블은 서로 다른 AWS 리전에 있는 여러 복제본 테이블로 구성됩니다. 복제본 테이블의 항목이 변경되면 동일한 글로벌 테이블에 있는 다른 모든 복제본에 변경 내용이 복제됩니다. 복제는 일반적으로 1초 내에 이루어지며 최종 일관성을 갖습니다. 자세한 내용은 정합성 및 충돌 해결 단원을 참조하십시오.