Consistency Level

Consistency 란?

  • 최근에 데이터 row들이 얼마나 동기화 되었는지 여부

  • 참고, 카산드라는 consistency 보다 availability 에 더 중점

    • 대신 사용 사례에 따라 일관성을 조정 가능

Replication 전략 2 가지 (안정성과 내결함성 보장을 위한)

  • SimpleStrategy

    • single 데이터센터와 one rack topology 경우에 사용

  • NetworkTopologyStrategy

    • multiple 데이터센터와 multiple racks 경우에 사용

Replication Factor (RF) 란?

  • 클러스터에서 몇개의 노드가 복제본을 저장할 건지 명시하는 것

  • 노드가 fail하면 다른 노드에서 동일한 데이터를 사용할 수 있도록

Level 종류

  • https://docs.datastax.com/en/drivers/java/2.0/com/datastax/driver/core/ConsistencyLevel.html

Write 에서의 일관성 레벨 역할

데이터 작성자에게 성공여부를 전달하기전 얼마나 많은 복제 노드로 부터 동의를 받아야 하는지

사례

ONE and RF = 3

노드 3 개 중 하나의 복제 노드만이 (성공적인) 쓰기 작업에 대해 승인하더라도 나머지에도 비동기식으로 복제

QUORUM and RF = 5

과반수 이상 (여기선 노드 3개) 으로 부터 쓰기작업이 성공했다고 승인을 받아야됨.

Read 에서의 일관성 레벨 역할

데이터 요청자에게 전달하기전 얼마나 많은 노드에서 복제본을 읽어들여야 하는지

Write랑 별개로 레벨 설정 가능

사례

ONE

하나의 노드로 부터만 읽어들이면 됨

QUORUM

모든 데이터센터 중에서 과반수 이상의 노드로 부터 읽어들이면 됨

Strong consistency 란

항상 가장 최근에 작성된 데이터를 읽어 들이는 것.

참고자료

  • https://www.baeldung.com/cassandra-consistency-levels

Last updated