2017-12-29 56 views
0

Cassandra를 사용하는 nodejs에서 'DowngradingRetryPolicy'정책을 설정하는 것에 대해 확신하지 않습니다. 나는 IdempotenceAwareRetryPolicy 정책을 설정하는 방법 Cassandra에서 nodejs를 사용하여 다운 그레이드 정책을 설정하는 방법

policies : { loadBalancing : new cassandra.policies.loadBalancing.RoundRobinPolicy, 
                retry: new cassandra.policies.retry.IdempotenceAwareRetryPolicy(new cassandra.policies.retry.RetryPolicy()) 
               } }); 

이며, 그것은 예상대로 작동되지만, nodejs 루비 구현을 추가 참고로

를 사용 카산드라의 'DowngradingRetryPolicy'정책을 설정하는 방법

https://datastax.github.io/ruby-driver/features/retry_policies/downgrading_consistency/ 

감사합니다,

해리

답변

2

nodej에 다운 그레이드 일관성 재시도 정책이 없습니다. 이것은 좋은 일이다. C * 일관성 보장과 관련하여별로 의미가 없다. 사람들은 항상 자신의 재시도 정책을 작성하여 실제로 필요한 경우 수행 할 수 있지만 기본적으로 예상치 못한/임의의 시간에 일관성 기대를 위반할 수있는 위험한 설정을 장려합니다.

그러나 재 시도 정책을 다운 그레이드하려는 경우 CL.ONE과 일반 정책 만 사용하십시오. 어쨌든 모든 쿼리가 실행되거나 응용 프로그램이 안전하지 않다고 가정해야합니다. 감소 된 일관성 수준의 성능 향상도 얻을 수 있습니다.

강력한 이유가없는 한, DCAwareRoundRobinPolicy를 감싸는 기본 TokenAwarePolicy로 고정하는 것이 가장 좋습니다. 아마도 안정성을 위해서 DCAwareRoundRobinPolicy가 가장 좋습니다.

+0

다운 그레이드 정책의 문제를 완전히 이해하고 있지만이를 처리 할 수있는 방법이 있습니까? https://stackoverflow.com/questions/48056093/high-availability-in-cassandra – Harry

+0

두 노드가 있다고 가정 해 봅시다. 노드가 다운되었습니다. RF = 2, 이제는 일관성 레벨을 1로 변경해야합니다. 그래서 시도 할 수있는 재시도 정책에 대한 nodejs의 예제가 있습니까? – Harry

+0

장애가 발생할 경우 단일 노드 지원이 필요합니다. – Harry