2010-03-01 18 views
21

Khi thử nghiệm với Cassandra Tôi đã quan sát thấy rằng Cassandra ghi vào các tập tin sau đây:Cấu trúc tệp Cassandra - các tệp được sử dụng như thế nào?

/.../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 

Cấu trúc chung có vẻ là:

/.../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 

cấu trúc tập tin Cassandra là gì? Cụ thể hơn, các thư mục data, commitlog được sử dụng như thế nào và cấu trúc của tệp trong thư mục data là gì (Data/Filter/Index)?

+3

Way lặn trong và hiểu những gì đang xảy ra dưới mui xe trong Cassandra! – Brian

Trả lời

29

Một ghi vào nút Cassandra lần đầu tiên truy cập CommitLog (tuần tự). (Sau đó, Cassandra lưu trữ các giá trị cho các cấu trúc dữ liệu trong bộ nhớ cụ thể của từng cột, được gọi là Memtables.) Các Memtables được xả vào ổ đĩa bất cứ khi nào một trong các ngưỡng cấu hình bị vượt quá (1, dữ liệu trong memtable. 3, thời gian tồn tại của một memtable hết hạn.))

Thư mục chứa thư mục con cho mỗi không gian phím. Mỗi thư mục con chứa ba loại tập tin:

  • file dữ liệu: Một SSTable (danh pháp mượn từ Google) là viết tắt của Sắp xếp Strings Bảng và là một tập tin của cặp chuỗi giá trị khóa (được sắp xếp theo phím). tập tin
  • Index: (Key, bù đắp) cặp (điểm vào tập tin dữ liệu)
  • Bloom filter: tất cả các phím trong tệp dữ liệu
+1

+1: Câu trả lời hay! Cảm ơn! – knorv

+0

Cảm ơn. Các Cassandra wiki là một nơi tốt để bắt đầu nếu bạn muốn có một sự hiểu biết sâu sắc hơn/mô tả về thuật ngữ và danh pháp được sử dụng trong Cassandra – Schildmeijer

21

Cassandra File Format in detail

Mỗi (object Ví dụ.) ColumnFamily trong các tập tin sstable tách

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

enter image description here

Các vấn đề liên quan