2013-07-31 3 views
-1

나는 카산드라의 효율적인 데이터 구조를 설계하는 방법을 자세히 이해할 필요가있다. Cassandra의 데이터 구조를 이해하기위한 온라인 데모 또는 자습서가 있습니까? 필자는 열과 페이로드로 열 패밀리를 디자인 할 수 있어야하며 몇 가지 구체적이고 구체적인 예를 살펴볼 수 있어야합니다. 만약 누군가 내가 이것을 할 수있는 소스를 추천 해 주시면 고맙겠습니다.카산드라 데이터 구조

답변

0

카산드라 코드베이스를 구성하는 수천 개의 클래스에서 C *의 성능이 단일 데이터 구조에 기인 한 것인지 의심 스럽습니다. 그러나이 주제는 하나의 온라인 데모에서는 다소 복잡합니다 ...

소스보다 나은 소스 ... 코드를 살펴보고 사용 된 데이터 구조를 확인하십시오. 메모리의 데이터는 정렬 된 문자열 테이블 (sstable) 인 memtable에 저장됩니다. 메모리 내 데이터는 디스크로 플러시되고 sstables에 다시 저장됩니다. 이 SO question은 dB의 열 색인을위한 이진 시도와 sstables 사이의 비교를 수행합니다.

재미있는 것으로 밝혀진 다른 데이터 구조는 수리 중 사용되는 merkle 트리입니다. 이것은 해시 된 이진 트리입니다. Merkle 트리를 사용할 때 많은 장점과 단점이 있지만 주요 이점 (그리고 단점이 있습니다)은 로컬 IO를 희생하면서 수리 (일명 트리 동기화)를 위해 전선을 통해 전송해야하는 데이터 양을 줄여주는 점입니다 트리의 해시를 계산합니다. 이 SO answer에서 자세한 내용을 읽고 wikipedia에 merkle 나무에 대해 읽어보십시오. dynamo paper의 4.6 절과 4.7 절에서 Merkle 나무가 수리하는 동안 어떻게 사용되는지에 대한 훌륭한 설명이 있습니다.

+0

감사합니다. 그러나 행 ID, 열 패밀리, 열, 페이로드 등을 포함하는 열 패밀리의 비즈니스 데이터 표현에 대한 지침을 찾고 있습니다. 열이 다른 (가로 방향) 옆에 있어야하거나 또는 다른 (수직)? Tx – TomFH