2016-09-30 8 views
1

나는 삭제 표시 압축이 끊임없이 실행되는 몇 가지 카산드라 테이블을 가지고 있으며, 이것이 카산드라 프로세스의 높은 CPU 사용량을 뒷받침하는 이유라고 생각합니다. 내가 가진테이블의 카산드라 상수 묘비 압축

설정은 다음과 같습니다 : 테이블 중 하나에서

compaction = {'tombstone_threshold': '0.01', 
'tombstone_compaction_interval': '1', 'class': 
'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'} 
default_time_to_live = 1728000 
AND gc_grace_seconds = 864000 
AND max_index_interval = 2048 
AND memtable_flush_period_in_ms = 0 
AND min_index_interval = 128 
AND read_repair_chance = 0.0 

내가 그것을 데이터 매 분마다 물품. 설정된 TTL 때문에 모든 행 집합이 1 분마다 만료됩니다.

  • 인해 낮은 tombstone_threshold 및 tombstone_compaction_interval 에 일정한 압축인가?

  • 사람은
    및 tombstone_compaction_interval tombstone_threshold 에 대한 자세한 설명을 제공 할 수 있습니다. 카산드라 문서는 그것을 잘 설명하지 못합니다.

답변

3

그래서 툼 스톤 압축은 SSTable이 최소 압축 간격보다 오래되었다고 가정하여 실행될 수 있습니다. SStables는 사물이 압축됨에 따라 만들어집니다. 문지르 기는 문스톤에 합류하는 대신 묘비에 단지 압축하기 전에 얼마나 많은 문지방이 묘비인지를 결정합니다.

평평하게 사용하고 있으며 20 일 정도의 시간이 걸립니다. 당신은 계속 유지하기 위해 tombstone 압축뿐만 아니라 다량의 압축을 할 것입니다. 레벨러 드는 오래된 압축기의 디스크 공간을 오래 사용하지 못하도록하는 것이 가장 좋습니다.

이 데이터가 그럴듯한 시계열 인 경우 TWCS을 대신 사용하는 것이 좋습니다. 이렇게하면 "버킷"이 생성됩니다.이 버킷은 압축 된 후에는 각각 불안정합니다. 따라서 해당 테이블의 데이터에 대한 ttl이 만료되면 압축기가 더 효율적인 전체 sstable을 삭제할 수 있습니다.

TWCS는 2.1의 클래스 경로에 추가해야하는 jar로 사용할 수 있으며 현재 프로덕션 환경에서 사용합니다. 그것은 카산드라의 3.x 시리즈에도 추가되었습니다.

+0

설명과 TWCS 제안을 주셔서 감사합니다. 왜 20 일 TTL이 엄청난 압축과 묘비 다툼을 일으킬 것이라고 말하는지 상세히 설명해 주시겠습니까? – GenerousJoker