아키텍처 개요

아키텍처 개요 (Overview)

Apache Cassandra는 오픈소스 분산 NoSQL 데이터베이스예요. 파티셔닝된 와이드 컬럼(partitioned wide-column) 저장 모델을 구현하며, 최종적 일관성(eventual consistency) 시맨틱을 가져요. 방대한 데이터를 여러 노드에 분산 저장하면서도 높은 가용성을 유지하도록 설계된 시스템이에요.

출처: Cassandra — Architecture Overview

설계의 뿌리

Cassandra는 원래 Facebook에서 스테이지드 이벤트 드리븐 아키텍처(SEDA)를 사용해 처음 설계됐어요. 이 초기 설계는 Amazon의 Dynamo 분산 저장·복제 기법과 Google의 Bigtable 데이터·저장 엔진 모델을 결합한 방식이었어요.

Dynamo와 Bigtable은 모두 확장 가능하고 신뢰할 수 있으며 높은 가용성의 저장 시스템에 대한 새 요구를 충족하기 위해 개발됐지만, 각각 개선할 만한 영역이 있었어요. Cassandra는 이 두 모델의 장점을 조합하면서 그 한계를 보완하는 방향으로 만들어졌어요.

핵심 특징

Cassandra는 다음을 목표로 해요.

  • 분산·파티셔닝 — 데이터를 파티션 키 기준으로 여러 노드에 나눠 저장해요.
  • 와이드 컬럼 모델 — 행마다 많은 수의 컬럼을 유연하게 가질 수 있어요.
  • 마스터 없는(peer-to-peer) 아키텍처 — 단일 장애점 없이 모든 노드가 동등하게 동작해요.
  • 선형 확장 — 노드를 추가하면 용량과 처리량이 선형적으로 늘어나요.

대규모(PiB급 이상) 운영상 중요한 저장 요구를 충족하기 위해 이런 방식으로 설계됐어요. 애플리케이션이 완전한 전역 규모로 확장되는 요구를 다루면서, 분산 환경의 복잡성을 감당할 수 있게 만들어졌죠.

더 알아보기