cassandra진영인 datasax에서 재미난 시도들을 cassandra 2.0에 넣었다.
https://issues.apache.org/jira/browse/CASSANDRA-5932
아래 내용은 반드시 읽어볼 만하다.
http://www.datastax.com/dev/blog/rapid-read-protection-in-cassandra-2-0-2
보통은 아래와 같이 데이터를 읽어오는 가정속이다.
그러나, replica가 죽으면, timeout을 낸다.
하지만, replica가 죽으면 알아서 최적의 다른 노드를 읽어서 전달해주면 되면 된다. 이 것을 rapid read protection이라 불린다.
아래 정보만 넣으면 된다고 한다.
ALTER TABLE users WITH speculative_retry = '10ms';
ALTER TABLE users WITH speculative_retry = '99percentile';
2.0.2부터는 디폴트로 이 룰이 적용된다고 한다.
일반적으로 cassandra의 하나의 노드가 죽으면 출렁거리고, timeout이 빈번하게 일어난다. (사실 일반 nosql, db든지 대체적으로 이런 현상이 일어난다.) 그러나 rapid read protection을 적용하면 출렁임을 최소화 할 수 있다.
그러나. 이슈는 있다. ConsistencyLevel.ALL는 완벽히 보장할 수 없다.
부하가 많은 상황에서는 더 출렁거릴 수 있을 수 있다. 여유있게 운영할 수 있도록 서버를 늘릴 필요가 있다. 역시 운영의 묘가 필요한 법이다.
'nosql' 카테고리의 다른 글
[cassandra 2.0] terminal, cqlsh을 이용해서 간단한 정보 얻어오기 (active check) (0) | 2013.11.07 |
---|---|
cassandra 'in' query 지원 (0) | 2013.11.07 |
cassandra version upgrade(update) (0) | 2013.11.05 |
cassandra java api 테스트 - API 비교 (0) | 2013.11.04 |
cassandra java client api 선택 & 비교 (0) | 2013.11.04 |