-
Apache Cassandra 는 대규모로 확장 가능한 고성능 분산형 NoSQL DB
-
장점
-
Masterless
전통적인 데이터베이스의 대부분은 Master-Slave 인데, 해당 아키텍처가 가지는 단점이 없음.
- 데이터 복제를 담당하는 단일 노드가 없고 모든 노드가 동일함
- 모든 노드가 읽기 및 쓰기 작업을 수행
- 데이터는 모든 노드에서 투명하게 분할되므로 개발자나 관리자가 클러스터 전체에 데이터를 배포하기 위해 프로그래밍 하지 않아도 됨 (gossip protocol 구현).
- 성능이 향상되고 데이터베이스에 복원력이 추가 됨
-
확장성
-
고 가용성 및 내 결함성 : 모든 Cassandra 노드는 읽기 및 쓰기 작업을 수행 할 수 있으므로 노드에 장애가 발생하면 사용자는 가장 가까운 정상 노드로 자동 라우팅
-
고성능
-
-
단점
- Join이나 Transaction을 지원하지 않음
- Index 등의 검색을 위한 기능도 매우 단출
- RDBMS와 같은 Paging을 구현하는 것이 힘들고 Keyspace나 Table 등을 과도하게 생성할 경우 Memory Overflow 가 발생할 수 있음
관계형 데이터베이스 | 카산드라 |
---|---|
적당한 수신 데이터 속도 처리 | 높은 수신 데이터 속도 처리 |
복잡하고 중첩 된 거래 지원 | 간단한 거래 지원 |
장애 조치를 통한 단일 장애 지점 | 단일 실패 지점이 없고 지속적인 가동 시간 |
중간 규모의 데이터 볼륨 지원 | 매우 높은 데이터 볼륨 지원 |
중앙 집중식 배포 | 분산 배치 |
주로 한 위치에 기록 된 데이터 | 여러 위치에서 작성된 데이터 |
읽기 확장 성 지원 (일관성 희생) | 읽기 및 쓰기 확장 성 지원 |
수직 확장 방식으로 배포 | 수평 확장 방식으로 배포 |