1

R + W> N 여기서 R은 읽기 쿼럼 수준, W는 쓰기 쿼럼 수준 및 N은 복제 인수입니다. 우리는 또한 R = W = N/2 + 1이라고 가정 할 수 있습니다.카산드라 - 업데이트 일관성 중 읽기

키의 업데이트 작업이 진행 중이고 Cassandra가 타임 스탬프 t가있는 단일 복제본에 대한 업데이트를 커밋했다고 가정 해 봅시다. 다른 복제본에는 <t라는 타임 스탬프가 저장된 키가 있다고 가정합니다. 업데이트가 진행되는 동안 개체에 대한 읽기 요청이 발생하면 읽기 쿼럼에 타임 스탬프가 t 인 키가 포함 된 업데이트가 발생한 단일 복제본이 포함되어 있고 아직 커밋되지 않은 값을 반환 할 가능성이 있습니다 (가능한 미래 값 - 업데이트가 실제로 실패 할 수 있으므로 '가능'이라고 말합니다.) 읽기 쿼럼의 다른 복제본에서 타임 스탬프가 있기 때문입니다.

강한 일관성을 보장하기 위해 R + W> N 구성이 필요합니까? 또한이 문제가 어떻게 해결됩니까?

+0

업데이트가 실제로 어떻게 실패 할 수 있습니까? Write 일관성 및 실제 노드 수에 따라 다릅니다. –

답변

0

귀하의 asumption에 맞습니다.

카산드라 거래는 RDBMS의 ACID properties의 의미에서 원자 적이지 않습니다. 즉, 업데이트가 실패하면 카산드라의 상태가 변경되지 않고 업데이트 된 값을 읽을 수 있습니다. Cassandra 및 ACID 속성에 대한 추가 정보를 얻으려면 this page을 참조하십시오.

우리가 알고있는 것은 R + W> N으로 쓰기와 읽기 모두에서 일관성 수준에 도달하면 가장 최근의 쓰기를 수신한다는 것입니다. 즉, 카산드라가 충분히 사용 가능하다면 일관성이 있습니다. 그 아이디어는 CAP Theorem에서 온 것입니다.