2017-01-02 2 views
0

나는 cassandra 3.7을 사용하기 시작했고 항상 커밋 로그에 문제가 있습니다. 예기치 않은 정전으로 PC가 예기치 않게 종료되면 카산드라 서비스가 다시 시작되지 않습니다. 명령 줄을 시작하려고하지만 항상 오류 cassandra could not read commit log descriptor in file이 나타납니다.파일에 커밋 로그 설명자를 읽을 수 없습니다.

나는 모든 커밋 로그를 지워서 카산드라 서비스를 시작해야합니다. 문제는 내가 많은 양의 데이터를 잃어버린다는 것이다. 복제 계수를 3으로 늘리려고했지만 동일합니다.

손실 된 데이터 양을 줄이려면 어떻게해야합니까?

pd : cassandra 데이터베이스를 사용하는 데 단 하나의 PC 만 사용할 수 있습니다. 더 많은 PC를 추가 할 수 없습니다.

답변

0

여기에 귀하의 옵션은 갑자기 정전 될 경우 커밋 테이블 파일이 손상되는 것을 방지 할 수있는 확실한 솔루션이 있기 때문에 문제를 해결하는 것입니다. 단일 노드 만 있기 때문에 데이터를 복구하기가 더 어려워집니다. 단일 노드 클러스터에서 복제 계수를 3으로 늘리는 것이 도움이되지 않습니다.

시도해 볼 수있는 한 가지는 memtables이 플러시되는 빈도를 줄이는 것입니다. memtable이 플러시 될 때 커밋 로그의 항목이 삭제되므로 손실 된 데이터의 양이 줄어 듭니다. Details here. 그러나 이것은 루트 문제를 해결하지 못할 것입니다.

+0

나는이 값을 수정하여 캐던 드라가 memtable을 디스크에 더 자주 플러시하도록하려고합니다. 데이터베이스가 4GB RAM이 설치된 PC에 설치되어 있는데 올바른 구성은 무엇입니까? –