운영 관점
장애 중에도 쓰기를 이어가고,
일관성은 요청마다 조절하는 분산 구조
Cassandra의 특징은 따로 떨어진 기능이 아니라 하나의 방향으로 연결된다. 링 위에 파티션과 복제본을 분산해 노드를 쉽게 늘리고, 쓰기를 빠르게 받아 가용성을 높인다. 대신 모든 복제본이 즉시 같은 상태인지 여부는 ONE, QUORUM, ALL 같은 일관성 수준으로 조절한다.
공유 전제
하나의 파티션이 링의 여러 노드에 복제된다
노드가 추가되면 전체를 다시 배치하는 대신 일부 토큰 범위만 이동한다. 이 구조가 확장성, 장애 대응, 일관성 선택을 같은 축으로 묶어 준다.
ONE
QUORUM
ALL
링 구조
토큰 범위를 노드들이 나눠 맡는다
중앙 마스터 하나에 몰지 않고, 각 노드가 링의 일부 범위와 그 복제본을 담당한다.
수평 확장이 자연스럽다
노드를 추가할 때 일부 범위만 재배치하면 되므로 클러스터를 점진적으로 키우기 쉽다.
쓰기 최적화
작은 쓰기를 계속 빠르게 받는 쪽에 맞춘다
로그, 센서 이벤트, 메시지처럼 끊임없이 들어오는 데이터를 누적하는 워크로드에 유리하다.
읽기보다 쓰기 처리량을 우선한다
데이터를 넓게 검색하기보다, 미리 정한 파티션 단위로 빠르게 기록하고 읽는 방식에 강하다.
AP 성향
일부 노드 장애가 있어도 요청을 계속 받는다
복제본 중 살아 있는 노드가 있으면 읽기와 쓰기를 이어갈 수 있어 가용성을 우선하는 쪽에 가깝다.
즉시 동일 상태는 약해질 수 있다
장애 직후에는 복제본 사이에 잠시 차이가 남을 수 있어, 강한 일관성을 항상 기본값으로 두지 않는다.
튜닝 가능 일관성
요청마다 응답을 몇 개까지 기다릴지 정한다
ONE은 지연 시간을 줄이고, QUORUM은 균형을 잡고, ALL은 더 강한 확인을 요구한다.
가용성과 정확도 사이를 직접 선택한다
서비스 특성에 따라 빠른 응답이 중요한지, 더 강한 최신성이 중요한지 운영자가 조절할 수 있다.
읽는 포인트: Cassandra를 이해할 때는 기능 이름보다 분산된 복제 구조가 어떤 운영 결과를 만드는지를 보면 된다. 링 구조는 확장을, 쓰기 최적화는 처리량을, AP 성향과 튜닝 가능 일관성은 장애 대응과 최신성의 균형을 설명한다.