sstableexpiredblockers — 만료 SSTable을 막는 차단 SSTable 목록

sstableexpiredblockers — 만료 SSTable을 막는 차단 SSTable 목록

컴팩션 과정에서, SSTable이 만료된 툼스톤(expired tombstone)만 포함하고 있고 그 데이터가 다른 SSTable의 데이터보다 오래된 것이 보장된다면, 해당 SSTable 전체를 삭제(drop)할 수 있어요. 그런데 만료된 SSTable의 최신 타임스탬프가 다른 SSTable의 가장 오래된 데이터보다 더 새로운 경우, 만료된 SSTable은 삭제되지 못하고 차단될 수 있습니다.

이 도구는 다른 SSTable이 삭제되는 것을 막고 있는(즉, 만료된 SSTable의 최신 툼스톤보다 더 오래된 데이터를 갖고 있는) 모든 SSTable을 나열해서, 특정 SSTable이 왜 여전히 디스크에 남아 있는지 파악할 수 있게 해줘요.

관련 문서: CASSANDRA-10015

이 도구 실행 전에 Cassandra를 반드시 중지해야 해요. 그렇지 않으면 예상치 못한 결과가 발생할 수 있으며, 스크립트는 Cassandra가 정지되었는지 검증하지 않습니다.

출처: sstableexpiredblockers — 만료 SSTable을 막는 차단 SSTable 목록

본문

기본 사용법은 다음과 같습니다.

sstableexpiredblockers <keyspace> <table>

차단된 SSTable 출력

테이블에 SSTable이 존재하지만, 만료 SSTable의 최신 툼스톤보다 더 오래된 데이터를 가진 테이블이 없다면 스크립트는 아무것도 반환하지 않아요.

그렇지 않으면 스크립트는 <sstable> blocks <> expired sstables from getting dropped 메시지 다음에 차단된 SSTable 목록을 반환합니다.

예시:

sstableexpiredblockers keyspace1 standard1

[BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-0665ae80b2d711e886c66d2c86545d91/mc-2-big-Data.db') (minTS = 5, maxTS = 5, maxLDT = 2147483647)],  blocks 1 expired sstables from getting dropped: [BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-0665ae80b2d711e886c66d2c86545d91/mc-3-big-Data.db') (minTS = 1536349775157606, maxTS = 1536349780311159, maxLDT = 1536349780)],

[BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-0665ae80b2d711e886c66d2c86545d91/mc-1-big-Data.db') (minTS = 1, maxTS = 10, maxLDT = 2147483647)],  blocks 1 expired sstables from getting dropped: [BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-0665ae80b2d711e886c66d2c86545d91/mc-3-big-Data.db') (minTS = 1536349775157606, maxTS = 1536349780311159, maxLDT = 1536349780)],

더 알아보기 (Learn more)