2014-04-16 2 views
1

나는 호기심을 느끼고 있습니다. 카산드라 운전자는 토폴로지를 알고 있습니까? 드라이버가 어느 랙이 가장 가까운 랙인지, 어떤 노드가 데이터를 보유 할 가능성이 가장 높고 요청의 응답 시간을 줄이기 위해 대기 시간이 짧다는 것을 의미합니까? 아니면 모든 운전자가 이것을 알고 있습니까? 어떤 도서관을 추천합니까?PHP, java, python, node.js의 Cassandra 드라이버 토폴로지 인식

정말 고맙습니다. 모든 DataStax drivers for Cassandra

+0

흥미로운 질문입니다. 드라이버 (Ruby, Python, node.js)에서'hosts' 배열을 사용했기 때문에 추측 할 수 없습니다. 서버가 호스트 중에서 가장 빠른 것을 선택한 경우 모든 요청을 처리하는 노드가 하나만있는 핫스팟 (적어도 처음에는)이 있습니다. 카산드라의 전체적인 요점은 부하를 분산 시켜서 라운드 로빈을하고 있다고 가정합니다. –

+0

아무 드라이버도 데이터가 어디에 있는지 알지 못합니다. 분산 된 아키텍처의 장점이기도합니다. 노드 자체가 기본 키 해시 범위에 동의 했으므로 데이터가 최대 한 홉까지 떨어져 있음을 의미합니다. 클라이언트 드라이버가 서버 토폴로지 특히 운전자가 모든'hosts', 또는 종자를 공급되지 않을 수 있습니다 고려, 하나의 작은 홉을 저장하지 모든 로직을 만들려고하는 것이 많이하게하지 않는 것 노드 호스트. –

+0

갖는 실시간 요구 한 홉은 안전 LatencyAwarePolicy이없는 드라이버 – Manuel

답변

2

는 플러그 정책의 형태로 다양한로드 밸런싱 옵션이 제공됩니다. 토큰을 기반으로

  1. 스마트 요청 라우팅 : 그냥 몇 가지 예를 당신에게 제공하기 TokenAwarePolicy
  2. DC를 인식 : DCAwareRoundRobinPolicy
  3. 대기 시간에 대한 인식 :의 일부를 지원하는 아마 다른 드라이버가 있습니다

LatencyAwarePolicy 이러한로드 균형 조정 옵션은 있지만 모든 것을 알 필요는 없습니다 .-).

+0

파이썬 드라이버에서 어떤 논리를 가지고 할 수있는 몇 밀리 초, 의미합니다. https://datastax-oss.atlassian.net/browse/PYTHON-121 – Milan

관련 문제