2010-03-01 7 views
21

나는 카산드라는 다음 파일에 기록 것을 관찰했습니다카산드라 파일 구조 - 파일은 어떻게 사용됩니까? 카산드라 실험 때

/.../cassandra/commitlog/CommitLog-ID.log 
/.../cassandra/data/KEYSPACE/COLUMN_FAMILY-N-Data.db 
/.../cassandra/data/KEYSPACE/COLUMN_FAMILY-N-Filter.db 
/.../cassandra/data/KEYSPACE/COLUMN_FAMILY-N-Index.db 
/.../cassandra/system.log 

카산드라 파일 구조는 무엇입니까 :

/.../cassandra/commitlog/CommitLog-<id>.log 
/.../cassandra/data/Keyspace1/Standard1-1-Data.db 
/.../cassandra/data/Keyspace1/Standard1-1-Filter.db 
/.../cassandra/data/Keyspace1/Standard1-1-Index.db 
/.../cassandra/data/system/LocationInfo-1-Data.db 
/.../cassandra/data/system/LocationInfo-1-Filter.db 
/.../cassandra/data/system/LocationInfo-1-Index.db 
/.../cassandra/data/system/LocationInfo-2-Data.db 
/.../cassandra/data/system/LocationInfo-2-Filter.db 
/.../cassandra/data/system/LocationInfo-2-Index.db 
/.../cassandra/data/system/LocationInfo-3-Data.db 
/.../cassandra/data/system/LocationInfo-3-Filter.db 
/.../cassandra/data/system/LocationInfo-3-Index.db 
/.../cassandra/system.log 

일반적인 구조는 것 같다? 더 구체적으로 말하면 data, commitlog 디렉토리는 어떻게 사용되고 data 디렉토리 (Data/Filter/Index)에있는 파일의 구조는 무엇입니까?

+3

에서 다이빙하는 방법 카산드라의 두포에서 무슨 일이 벌어지고 있는지 이해하십시오! – Brian

답변

29

먼저 Cassandra 노드에 쓰기를 수행하면 CommitLog (순차적)이 기록됩니다. (그런 다음 Cassandra는 Memtables라고 불리는 컬럼 - 패밀리 특정 메모리 내 데이터 구조에 값을 저장합니다. Memtables는 구성 가능한 임계 값 중 하나가 초과 될 때마다 디스크로 플러시됩니다 (1, memtable. 2의 데이터 크기, 3, memtable의 유효 기간이 만료됩니다.)

데이터 폴더에는 각 키 공간에 대한 하위 폴더가 있습니다.

  • 데이터 파일 : 각 하위 폴더 파일의 세 가지 종류가 포함 된 SSTable (구글에서 빌려온 용어 ) 정렬 된 문자열 테이블을 의미하고 ( 키를 기준으로 정렬) 키 - 값 문자열 쌍의 파일입니다.
  • 색인 파일 : (키, 오프셋) 쌍 (데이터 파일로 점)
  • Bloom filter : 구분 sstable 파일의 데이터 파일
+1

+1 : 좋은 답변입니다! 감사! – knorv

+0

감사합니다. 카산드라 위키는 카산드라에서 사용되는 용어와 명칭에 대해 좀 더 심층적으로 이해하고 설명하고 싶다면 시작하기 좋은 곳입니다. – Schildmeijer

21

Cassandra File Format in detail

각 ColumnFamily. (예 : 대상)에서 모든 키

ColumnFamilyName-version-#-Data.db 
ColumnFamilyName-version-#-Index.db 
ColumnFamilyName-version-#-Filter.db 

enter image description here