본문 바로가기

NoSQL/Cassandra

[Cassandra] Cassandra 특징


[분산화]

  - 여러 머신에서 동작하지만, 사용자에게는 통합된 하나로 보인다.

  - 물리적으로 떨어져 있는 데이터 센터 간에도 단일 카산드라 클러스터를 운영할 수 있다.

  - 클러스터의 어디에라도 데이터를 쓸 수 있고, 카산드라는 데이터를 받아들인다.


[비집중화]

  - 마스터 / 슬레이브 구조보다 사용하기 간단하고, 서비스 중단을 피하게 해준다.

  - 모든 복제본이 완벽하게 같으므로 노드 하나가 실패했다고 서비스가 중단되는 일은 발생하지 않는다.


[탄력적인 확장성]

  - 클러스터의 중단 없이 규모를 확대하거나 축소할 수 있다.

  - 새로운 머신을 추가하면 카산드라가 새로 추가된 머신을 찾아내고 작업을 할당한다.


[고가용성 결함 허용]

  - 클러스터에서 시스템을 중단하지 않고도 장애가 발생한 노드를 교체할 수 있다.

  - 다중 데이터 센터에 데이터를 복제해서 로컬 성능을 개선할 수 있다.

  - 한 데이터 센터가 화재나 홍수 같은 치명적인 재앙을 당하더라도 다중 데이터 센터에 데이터를 복제해서

    서비스 중단을 예방할 수 있다.


[조정 가능한 일관성]

  - 카산드라에서 일관성은 성공 아니면 실패가 아니라 클라이언트에서 전체 업데이트를 위해 블록할 복제본의 

    개수를 통제할 수 있다. 

  - 그래서 카산드라에서 일관성은 좀 더 정확히 말하자면 "조정 가능한 일관성"이라 해야 할 것이다.


[로우 지향]

  - 카산드라는 관계형 구조가 아니며 희소 다차원 해시 테이블로 구조를 표현한다.

  - 희소는 로우가 하나 이상의 컬럼을 가질 수 있지만, 각 로우가 다른 로우와 똑같은 컬럼을 모두 가질 

    필요는 없다는 뜻이다.

  - 데이터 구조가 어때야 하는지, 레코드에 무슨 필드가 필요한지 등을 미리 결정할 필요가 없다.

  - 이와 같은 특성은 프로젝트 시작 단계 또는 기능의 추가 / 변경이 많은 경우에 매우 유용하다.


[스키마 프리]

  - 값 비싼 데이터 모델링 도구를 사용하고, 복잡한 조인 구문을 사용해 쿼리를 작성하는 사전 데이터 모델링 

    대신 카산드라는 원하는 쿼리를 모델링하고, 쿼리에 맞는 데이터를 제공하는 방식이다.


[고성능]

  - 멀티프로세서 / 멀티코어 머신을 최대한 활용하고 다중 데이터 센터에 설치된 수백 대의 머신 사이에서 

    실행되도록 설계되었다.

  - 수백 테라 바이트까지도 긴밀하게 확장되며, 엄청난 부하 상황에서도 뛰어난 성능을 보여준다.

  - 기본 사양의 워크스테이션에서도 초당 쓰기에 매우 빠른 처리량을 일관되게 보여준다.

  - 서버를 더 추가하더라도 성능을 떨어뜨리지 않으면서 카산드라의 장점을 모두 유지할 수 있다.



'NoSQL > Cassandra' 카테고리의 다른 글

[Cassandra] RDBMS vs Cassandra 쿼리 차이  (0) 2013.07.19
[Cassandra] Cassandra Data Model  (0) 2013.07.19
[Cassandra] 누가 Cassandra를 사용하는가?  (0) 2013.07.18
[Cassandra] Cassandra 설치  (0) 2013.07.17
[Cassandra] Cassandra 란?  (0) 2013.07.17