2011-10-03 19 views
8

Tôi biết rằng cassandra sáp nhập sstables, hàng phím, loại bỏ bia mộ và tất cả.cassandra làm gì trong quá trình nén?

  1. Nhưng tôi thực sự muốn biết nó hoạt động như thế nào?

  2. Vì sstables không thay đổi, nó có sao chép tất cả dữ liệu có liên quan vào tệp mới không? và trong khi ghi vào tập tin mới này, nó loại bỏ dữ liệu được đánh dấu bằng bia mộ.

tôi biết những gì nén không nhưng muốn biết làm thế nào nó làm cho điều này xảy ra (T)

Trả lời

7

Tôi hy vọng chủ đề này sẽ giúp, với điều kiện nếu bạn làm theo tất cả các bài viết và ý kiến ​​trong đó

http://comments.gmane.org/gmane.comp.db.cassandra.user/10577

AFAIK

Whenever memtable is flushed from memory to disk they are just appended[Not updated] to new SSTable created, sorted via rowkey. 
SSTable merge[updation] will take place only during compaction. 
Till then read path will read from all the SSTable having that key you look up and the result from them is merged to reply back, 

Two types : Minor and Major 

Minor compaction is triggered automatically whenever a new sstable is being created. 
May remove all tombstones 
Compacts sstables of equal size in to one [initially memtable flush size] when minor compaction threshold is reached [4 by default]. 

Major Compaction is manually triggered using nodetool 
Can be applied over a column family over a time 
Compacts all the sstables of a CF in to 1 

Compacts the SSTables and marks delete over unneeded SSTables. GC takes care of freeing up that space 

Kính trọng, Tamil

+0

có cách nào để GET dữ liệu của sstables sau khi nén không? Tôi có nghĩa là có bất kỳ java API để có được dữ liệu nén ngay trước khi nó được viết vào bảng cassandra? –

3

Có hai cách để chạy đầm nén:

A- Nén chặt. Chạy tự động. B- Độ nén lớn. Chạy mannualy.

Trong cả hai trường hợp đều có tệp x (mỗi CF) và xử lý chúng. Trong quá trình này đánh dấu các hàng với ttl hết hạn là bia mộ, và xóa các bia mộ hiện có. Với điều này tạo ra một tập tin mới. Các tombostones được tạo ra trong sự nén chặt này, sẽ bị xóa trong lần nén tiếp theo (nếu dành thời gian gia hạn, gc_grace).

Sự khác biệt giữa A và B là số lượng tệp được chụp và tệp cuối cùng. A có một vài tệp tương tự (kích thước tương tự) và tạo tệp mới. B lấy TẤT CẢ các tệp và chỉ sinh ra một tệp lớn.

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