2014-09-05 3 views
0

우리는 우리의 생산에 5 노드 카산드라 클러스터가 있습니다. 실행중인 모든 카산드라 2.0.6. 클러스터는 사용자 상호 작용을 열 패밀리의 페이지에 저장합니다. 데이터 모델은 다음과 같습니다.카산드라 삭제 후 행 키를 제거합니다

Row Key: 
20140101:http://example.com/myurlpath?myquery=1 

Columns: 
Counters 
X:Y:Type => Counter Value 

일종의 데이터 포인트 스트림입니다. n 주 이상 된 행 [모든 열 제거]을 적극적으로 삭제하는 별도의 cron이 있습니다. 우리의 삭제 cron 오래된 행을 비울지라도. 행 키는 여전히 우리 시스템에 남아 있습니다 [예 : 타임 스탬프가있는 행키가 20130517].

체크 됨 SO 게시물 hereherecassandra forum 답변이 명확하지 않습니다. 나는 분산 된 삭제와 삭제 표시를 이해합니다. 그러나이 행 키 문제는 여전히 저에게 신화로 남아 있습니다.

중요한 압축을 강제로 시도하고 정리를 변경하지 않았습니다. 왜냐하면 우리의 카산드라 클러스터가 사용하는이 메모리는 지속적으로 증가하고 있습니다. 우리의 행 키 크기는 평균적으로 높습니다 (평균 120B).

열 패밀리의 gc_grace 설정을 기본값 10 일 동안 유지하도록했습니다. 문제가된다면 적어도 한 달 또는 두 달에 한 행 키가 [매우 자주 존재하는] 년보다 오래된 것을 보지 말아야합니다.

카산드라에서 행 키 제거를 어떻게 관리해야합니까?

+0

모든 노드의 날짜 시간을 확인하십시오 .. 동일한 오류가 발생했으며 모든 경우 노드가 다른 날짜 시간을 가졌습니다 –

답변

0

클러스터 관리를 위해 Cassandra의 NodeTool 유틸리티 명령 줄 인터페이스를 사용하십시오.

CLI :

1 : CD C:\Program Files\DataStax Community\apache-cassandra\bin

2 : nodetool -h localhost flush KeySpace Table

2 ~ 3 분 정도 기다립니다. 내 카산드라 서버 유지 보수를 위해 nodetool을 사용하고

nodetool -h localhost compact KeySpace Table

+0

cassandra 열의 삭제 표시를 지우는 것이 아닙니까? – Tamil

+0

아니요, 행 키도 제거합니다. 플러시 및 소형 작업 사이에 대기해야합니다. –

0

마법의 기다립니다. 그것은 나를 위해 잘 작동합니다. 이를 위해서는 플러시, 정리 및 수리 유틸리티를 사용해야합니다. 쉘 스크립트를 작성하고 cronjob을 사용하여 스크립트를 실행해야합니다.

#!/usr/bin/env bash 
. /etc/rc.d/init.d/functions 
nodetool flush [keyspace] [cfnames] 
nodetool invalidatekeycache [keyspace] [cfnames] 
nodetool invalidaterowcache [keyspace] [cfnames] 
nodetool scrub [keyspace] [cfnames] 
nodetool repair [keyspace] [cfnames] 
nodetool cleanup [keyspace] [cfnames] 
nodetool compact [keyspace] [cfnames] 

참조 링크입니다 : 그것은 여러 sstables에있는 경우 위의 프리젠 테이션이 말한대로 NodeTool

관련 문제