카산드라의 기능들
1. Masterless 형태의 분산 아키텍처
기능: 카산드라는 모든 노드가 동등한 역할을 수행하는 masterless 아키텍처를 채택하여 고가용성과 확장성을 제공합니다.
요약: 특정 마스터 노드 없이 모든 노드가 균등한 역할을 하며, 클러스터 내의 어떤 노드가 실패해도 다른 노드가 작업을 이어받아 시스템의 안정성을 유지합니다.
2. Gossip 프로토콜 사용
기능: 노드 간의 상태 정보를 주기적으로 교환하기 위해 Gossip 프로토콜을 사용합니다.
요약: Gossip 프로토콜을 통해 클러스터 내의 모든 노드가 서로의 상태를 주기적으로 공유하여, 새로운 노드의 추가나 장애 발생 시 빠르게 반응합니다.
3. Key-Value 형태의 데이터 모델
기능: 카산드라는 데이터 저장에 key-value 모델을 사용하며, 각 row는 고유한 key에 의해 식별됩니다.
요약: 데이터는 row 단위로 저장되며, 각 row의 구성 요소인 column들은 유연하게 정의될 수 있습니다.
4. 파티셔닝과 복제를 통한 성능 및 내결함성 제공
기능: 데이터는 파티셔닝을 통해 클러스터 내의 여러 노드에 분산되며, 복제 메커니즘을 통해 높은 내결함성을 제공합니다.
요약: 기본 키를 기준으로 데이터를 파티셔닝하고, 복제를 통해 데이터의 안정성과 가용성을 높입니다.
5. CQL(Cassandra Query Language) 제공
기능: 카산드라에서 데이터베이스와 상호작용하기 위한 쿼리 언어인 CQL을 제공합니다.
요약: SQL과 유사한 CQL을 통해 카산드라 데이터베이스에서 데이터를 관리하고 쿼리할 수 있습니다.
6. 일관성 모델 튜닝 가능
기능: 카산드라는 사용자가 원하는 수준의 일관성을 설정할 수 있는 옵션을 제공합니다.
요약: 필요에 따라 읽기 및 쓰기 작업에 대해 일관성 수준을 조정할 수 있어, 성능과 데이터 무결성 사이에서 균형을 맞출 수 있습니다.
Keyspace: 가장 상위 레벨 데이터 집합 단위로, 테이블을 그룹화 Table(Column Family): RDB의 테이블에 해당
Row: 테이블 내에서 데이터는 row 단위로 저장되고, key로 구분됨 Column: row에 들어있는 데이터로 row마다 다른 column 구성이 가능함 Partition: 각 row의 기본 키를 기준으로 나뉘는 그룹