2014-11-07 2 views
0

카산드라에 대한 질문이 있습니다. "understable answer"를 아직 찾지 못했습니다 ... differents VM에서 3 노드 (RackInferringSnitch)에 클러스터 빌드를 만들었습니다. 나는 Datastax의 Java Driver를 사용하여 키 공간을 읽고 업데이트합니다 (CSV 사용). 하나 개의 노드가 다운되면 (예 : 10.10.6.172),이 디버그 경고있어 :카산드라와 연결이 끊어졌습니다.

INFO 00:47:37,195 New Cassandra host /10.10.6.172:9042 added 
INFO 00:47:37,246 New Cassandra host /10.10.6.122:9042 added 
DEBUG 00:47:37,264 [Control connection] Refreshing schema 
DEBUG 00:47:37,384 [Control connection] Successfully connected to /10.10.6.171:9042 
DEBUG 00:47:37,391 Adding /10.10.6.172:9042 to list of queried hosts 
DEBUG 00:47:37,395 Defuncting connection to /10.10.6.172:9042 
com.datastax.driver.core.TransportException: [/10.10.6.172:9042] Channel has been closed 
at com.datastax.driver.core.Connection$Dispatcher.channelClosed(Connection.java:621) 
at 
[...] 
[...] 
DEBUG 00:47:37,400 [/10.10.6.172:9042-1] Error connecting to /10.10.6.172:9042 (Connection refused: /10.10.6.172:9042) 
DEBUG 00:47:37,407 Error creating pool to /10.10.6.172:9042 ([/10.10.6.172:9042] Cannot connect) 
DEBUG 00:47:37,408 /10.10.6.172:9042 is down, scheduling connection retries 
DEBUG 00:47:37,409 First reconnection scheduled in 1000ms 
DEBUG 00:47:37,410 Adding /10.10.6.122:9042 to list of queried hosts 
DEBUG 00:47:37,423 Adding /10.10.6.171:9042 to list of queried hosts 
DEBUG 00:47:37,427 Adding /10.10.6.122:9042 to list of queried hosts 
DEBUG 00:47:37,435 Shutting down pool 
DEBUG 00:47:37,439 Adding /10.10.6.171:9042 to list of queried hosts 
DEBUG 00:47:37,443 Shutting down pool 
DEBUG 00:47:37,459 Connected to cluster: WormHole 

나는이 예외를 처리해야하는 경우 알고 싶어 또는 그것은 (내 말은 그 자체로 처리됩니다 노드가 다시 돌아올 때 배치가 쓰기 인 경우 올바른 카스 산드라가 올바른 쓰기를 수행합니다 ...)

EDIT : 현재 일관성 수준은 1입니다.

+0

이 키 공간에 대한 일관성 수준은 무엇입니까? – phact

답변

2

DataStax 드라이버는 항상 사용할 수있는 노드를 추적하고이 정보를 기반으로 쿼리 (로드 밸런싱)를 라우팅합니다. 이 방법은 reconnection policy을 기반으로합니다.

노드가 다운 된 것으로 감지되면 디버그 레벨 메시지가 표시됩니다. 드라이버가 다른 사용 가능한 노드로 경로를 재 지정하고, 주기적으로 노드를 다시 시도하여 그들은 돌아왔다. 문제가있어 데이터가 Cassandra에 저장되지 않으면 시간 초과 오류가 표시됩니다. 이 경우에는 조치가 필요 없습니다.

+0

답해 주셔서 감사합니다 ... 내 테스트 동안 나는 이상한 오류가 발생했습니다 : 내 Java 코드는 CQL 쿼리를 통해 새 열을 생성해야했습니다. 그러나이 컬럼은 (DESCRIBE를 통해) 내 테이블에 존재하지 않았지만'system.schema_columns'에 존재합니다 ... 그래서 값을 삽입하거나 컬럼이나 다른 것을 삭제할 수 없었습니다 ... 유일한 방법은 밖으로 'nodetool repair'는 ... – Ashrak

+0

흥미 롭다면, 나는이 문제를 해결하기 위해 수리를 추천했을 것이다. 나는 그 상태에서 어떻게 끝났는지 궁금해. 재현 할 수 있습니까? – phact

+0

아니요 동일한 오류를 재현하지 못했습니다 ... – Ashrak