[제8회 ACC]"빅데이터플랫폼, 카산드라 '올인' 이유는"

일반입력 :2012/09/12 15:20

데이터스택스는 검색, 실시간, 비정형데이터 분석을 지원하는 '데이터스택스 엔터프라이즈'를 빅데이터 플랫폼으로 선보였다. 아파치 카산드라 NoSQL 데이터베이스(DB)에 회사 노하우를 집약해 분산처리기반의 고속 데이터처리 분석 성능과 뛰어난 가용성, 높은 확장성을 제공한다고 강조했다.

앞서 데이터스택스는 오픈소스 NoSQL DB 카산드라와 분산처리기술 하둡을 짝지운 빅데이터 분석처리 전략을 제시해왔다. 올초 하둡과 카산드라DB 기술 수요가 급증세임을 지적하며 글로벌 생태계 확산을 예고한 회사는 이제 그에 기반한 빅데이터 활용 방안을 구체화할 때라고 조언했다.

매튜 데니스 데이터스택스 수석 기술 아키텍트는 12일 서울 잠실 롯데호텔서 열린 제8회 ACC 현장에서 '플랫폼형 빅데이터, 카산드라와 미래동향'을 주제로 발표하며 자사 빅데이터 플랫폼을 카산드라에 올인한 배경을 구체화했다. 카산드라는 최근 2년간 하이브, 하둡, 마훗, 솔러, 피그 등 하둡 관련 분산처리기술과 맞물려 폭증한 수요를 보였다면서다.

그에 따르면 빅데이터 플랫폼은 성능, 규모가변성, 가용성, 3가지를 갖춰야 한다. 성능은 초당 오퍼레이션수를 가리키는 스루풋과 요청당 결과를 내놓는 소요시간 등으로 측정된다.

데이터스택스 주력 NoSQL 기술 카산드라는 기록중인 디스크를 읽어낼 수 없는 락킹 등 성능 지연을 유발하는 요소가 없으며, 로그스트럭처드 스토리지엔진, 고도의 병렬성, 완전한 온디스크구조, 디스크상의 압축 기능을 지원한다고 회사측은 주장한다.

카산드라 스루풋은 0.6버전에서 초당읽기 5천에 쓰기 2만정도였다면 1.0버전부터 읽기와 쓰기를 3만대로 뛰어올랐다. 앞서 카산드라 컨퍼런스에서 넷플릭스가 자사 서비스 운영에 활용중인 사례를 공개한 자료에 따르면 그 요청당 결과가 나오기까지 소요시간인 레이턴시 측면에서도 뛰어난 성능을 보인다는 평가다.

카산드라를 SSD 저장장치로 쓸 경우 성능은 더욱 뛰어오른다. 카산드라는 GB당 1달러가량 하는 개인소비자용의 저렴한 MLC형 SSD를 사용할 수 있다. 소비자용 SSD를 사용한 카산드라는 다른 기업용 SLC 드라이브를 사용한 DB시스템에 가까운 수명을 기대할 수 있으며 성능차이도 크지 않다고 데니스 아키텍트는 강조했다.

조회당 8밀리초(ms)가 필요한 로테이셔널디스크는 아무리 빨라도 메모리와 캐시를 거치느라 근본적인 레이턴시를 감당해야 한다.

카산드라는 모든 입출력작업이 시퀀셜하며 업데이트시 데이터기록을 못하는 '락킹'도 없다. 앞선 기록작업이 끝날때까지 다음 처리 수행을 미뤄야 하는 마이SQL, 버클리DB, 몽고DB, 오라클 등 다른 DB기술에 비해 업데이트와 랜덤쓰기 성능이 월등하다고 주장한다.

데니스 아키텍트는 대부분의 시스템은 메모리보다 데이터량이 커질 경우 초당 처리성능이 급격히 추락한다며 이 상황은 예측과 대응이 어려운 경우인데 다른 기술에 비해 카산드라의 경우 성능하락이 비교적 완만하다고 덧붙였다.

H베이스와의 성능 비교시 읽기 스루풋은 10배, 쓰기는 8배 뛰어나며 읽기 레이턴시는 8배, 쓰기 레이턴시는 10배 낫다고 강조한다. 이밖에 네이티브CQL 전송계층이 존재하며 네이티브 JBOD 지원, v노드 지원, 오프힙 행과 키 캐시를 통합한 것도 특징이다.

카산드라는 또 선형적인 규모가변성을 지원한다. 레이턴시와 스루풋 성능이 고정적일 때 업무량이 늘면 그만큼 노드를 늘리면 되고, 일정한 업무량에 대해 스루풋을 향상시키기 위해서도 역시 노드를 늘리면 된다는 얘기다. 이같은 성능확장 시나리오는 넷플릭스가 지난해 11월 공개한 카산드라 규모가변성 벤치마킹 자료에서도 뒷받침된다.

데니스 아키텍트는 확장성과 성능을 끌어올리기란 어렵지 않다면서도 그에 상응하는 안정성과 가용성을 뒷받침해주는 것이 관건이라고 지적했다.

대규모 확장시스템의 가용성과 안정성을 위협하는 요소로는 디스크 장애 같은 부품고장, 랜카드나 프로세서나 전원장치같은 근본적인 기계고장, 라우터와 스위치와 UPS와 AC같은 서버랙 운영장애, 전력망이나 자연재해같은 환경적 문제 등으로 다양하다.

관련기사

이에 대한 기본 해법은 예비시스템 구성(리플리케이션)이다. 통상적인 리플리케이션은 클라이언트가 서비스에 연결시 거치는 라우터에 주사용시스템과 동일한 구성으로 보조시스템을 여럿 두는 그림을 그릴 수 있다. 주사용시스템에 문제가 생기면 해당 시스템의 최신상태를 보조시스템으로 신속하게 동기화하고 구동중인 작업을 실시간으로 넘겨주는 페일오버를 수행케 된다. 이 시간이 길어진다면 사실상 서비스 운영을 멈추는 '다운타임'을 발생시키게 된다.

이 과정에 사용자는 서비스상의 문제를 인식할 수 있고 성능 장애도 겪게 되는데 카산드라는 그렇지 않다고 강조했다. 카산드라 시스템은 사용자가 장애 발생중인지도 모르게 장애복구를 수행 가능하다는 것이다. 아마존같은 글로벌클라우드업체에겐 복수의 데이터센터를 두고 상호 예비로 동작하는 시스템을 강조한 것이다.