최근 수정 시각 : 2024-11-30 00:35:24

Apache Cassandra

<colbgcolor=#eb4034><colcolor=#1f2023,#fff> 아파치 카산드라
Apache Cassandra
파일:Apache-Cassandra-Logo.png
시작 2008년 7월
사용 언어 CQL[1]
라이선스 아파치 라이선스
홈페이지 파일:홈페이지 아이콘.svg

1. 개요2. 배경3. 자체언어 CQL4. 둘러보기

[clearfix]

1. 개요

페이스북의 내부 프로젝트 였지만 현재 아파치 소프트웨어 재단의 프로젝트로 발전되었다.

카산드라는 대규모의 대이터를 효율적으로 처리하도록 설계된 분산형 NoSQL데이터베이스로 높은 확장성과 내결함성으로 많은 구조적 혹은 비구조적인 데이터를 다루는데 최적화되어있다.

2008년 페이스북의 빠른 성장세로 인해 데이터의 안정적이고 효율적으로 관리할 시스템이 필요했다. 기존의 관계형 데이터 베이스의 성능과 확장성에 한계가 있어 페이스북 내부적으로 개발되기 시작이 되었다.
구글의 Bigtable 아마존의 DynamoDB에서 영감을 받았는데
Bigtable에서 고정된 스키마 없이 동적으로 열을 추가 가능한 구조의 열 기반 저장소(Columnar Storage) 개념, 이를 통해 데이터를 열 단위로 저장하고 관리하며, 테이블 구조를 기반으로 데이터를 Keyspace와 Column-Family로 구성해 데이터를 효율적으로 관리할 수 있는 체계를 설계했다.
DynamoDB에서는 분산 해시 테이블(Distributed Hash Table) 기반의 Peer-to-Peer[2] 아키텍처를 차용해 중앙 제어점을 제거하고, 노드 간 동등한 역할 분담을 통해 단일 장애지점(Single Point of Failure)을 했다. 데이터 복제와 궁극적 일관성(Eventual Consistency) 개념을 받아들여 데이터의 가용성을 우선시하며 사용자 설정에 따라 일관성 수준을 조정할 수 있도록 했으며, 노드 간 상태 정보를 교환하고, 장애 복구와 데이터 일관성 유지에 활용했다.

2. 배경

2008년 당시 급격히 성장하던 페이스북은 대규모 데이터처리를 해햐 하지만 사용중인 관계형 데이터베이스(RDBMS)의 성능과 확장성에 한계가 있었고, 이를 해결하기 위해서 페이스북 엔지니에인 Avinash Lakshman[3]Prashant Malik가 카산드라를 분산 데이터베이스로 개발하였으며, 2008년 7월에 소스코드를 오픈소스로 공개를 하여 범용 분산 데이터베이스의 기반을 마련하였다.

2009년에는 아파치 소프트웨어 재단의 Incubator 프로젝트로 선정되었다.[4]2010년에는 아파치의 톱 레벨 프로젝트로 승격#되었다. 오픈소스 커뮤니티의 지원과 기여로 대규모 서비스에서 사용자 데이터 관리, 타임라인 저장, 상품 추천 시스템 등 다양한 용도로 채택되었다.

3. 자체언어 CQL

4. 둘러보기



[1] Cassandra Query Language[2] 중앙 서버를 거치지 않고 클라이언트끼리 직접 통신하는 방식[3] Amazon Dynamo의 설계자 중 한 명[4] 아파치 라이선스 2.0의 호환성을 입증하였으며, 활발한 커뮤니티로 커뮤니티 기반의 개발 가능성과 지속 가능성을 보였으며, Netflix, Twitter, Digg와 같은 기업들의 초기 도입에서의 성공 사례로 인해 선택이 되었다.