<colbgcolor=#eb4034><colcolor=#1f2023,#fff> 아파치 카산드라 Apache Cassandra |
|
|
|
시작 | 2008년 7월 |
사용 언어 | CQL[1] |
라이선스 | 아파치 라이선스 |
홈페이지 |
[clearfix]
1. 개요
카산드라는 페이스북의 내부 프로젝트 였지만 현재 아파치 소프트웨어 재단의 프로젝트로 발전되었다.카산드라는 대규모의 대이터를 효율적으로 처리하도록 설계된 분산형 NoSQL데이터베이스로 높은 확장성과 내결함성으로 많은 구조적 혹은 비구조적인 데이터를 다루는데 최적화되어있다.
2008년 페이스북의 빠른 성장세로 인해 데이터의 안정적이고 효율적으로 관리할 시스템이 필요했다. 기존의 관계형 데이터 베이스의 성능과 확장성에 한계가 있어 페이스북 내부적으로 개발되기 시작이 되었다.
-
구글의
Bigtable
열 기반 저장소(Columnar Storage) 설계를 채택했다.
이는 고정된 스키마 없이 동적으로 열을 추가할 수 있는 구조로, 데이터를 효율적으로 저장 및 검색하는 데 유리하다. Cassandra는 테이블 구조를 기반으로 데이터를 Keyspace와 Column Family로 조직화한다.
-
아마존의
DynamoDB
분산 해시 테이블(DHT) 개념과 Peer-to-Peer 아키텍처를 채택했다.
이를 통해 중앙 제어점을 제거하고 모든 노드가 동등한 역할을 수행하게 해 단일 장애 지점을 방지했다. Dynamo의 데이터 복제, 궁극적 일관성(Eventual Consistency)으로 데이터의 가용성을 우선시하며, 노드 간 상태 정보를 교환하고, 장애 복구와 데이터 일관성 유지에 활용했다.
2. 배경
2008년 당시 급격히 성장하던 페이스북은 대규모 데이터처리를 해햐 하지만 사용중인 관계형 데이터베이스(RDBMS)의 성능과 확장성에 한계가 있었고, 이를 해결하기 위해서 페이스북 엔지니에인 Avinash Lakshman[2]과 Prashant Malik가 카산드라를 분산 데이터베이스로 개발하였으며, 2008년 7월에 소스코드를 오픈소스로 공개를 하여 범용 분산 데이터베이스의 기반을 마련하였다.2009년에는 아파치 소프트웨어 재단의 Incubator 프로젝트로 선정되었다.[3] 2010년에는 아파치의 톱 레벨 프로젝트로 승격되었다. 오픈소스 커뮤니티의 지원과 기여로 대규모 서비스에서 사용자 데이터 관리, 타임라인 저장, 상품 추천 시스템 등 다양한 용도로 채택되었다.
3. 자체언어 CQL
4. 둘러보기
[1]
Cassandra Query Language
[2]
Amazon Dynamo의 설계자 중 한 명
[3]
아파치 라이선스 2.0의 호환성을 입증 이외에 활발한 커뮤니티로 커뮤니티 기반의 개발 가능성과 지속 가능성을 보였으며, Netflix, Twitter, Digg와 같은 기업들의 초기 도입에서의 성공 사례로 인해 선택이 되었다.