Apache Cassandra은 샤딩을 지원합니까?카산드라는 샤딩을 지원합니까?
이 질문은 사소한 것처럼 보일 수도 있음을 사과하지만 답변을 찾지 못하는 것 같습니다. 나는 카산드라가 부분적으로 GAE의 빅 테이블 (Big Table)을 모델로 만들어 졌다고 읽었습니다. 그러나 현재 카산드라에서 찾은 문서의 대부분은 카산드라가 여러 컴퓨터에서 가로로 데이터를 분할하지 않는다는 것을 암시하는 것으로 보입니다. 오히려 많은 많은 중복 컴퓨터를 지원합니다. 이것은 카산드라가 고 가용성 읽기에 적합 함을 암시하지만, 쓰기 볼륨이 매우 높아진다면 결국 고장이 날 것입니다.
좋아요, 중요한 질문 : Cassandra는 Olog (n) 시간에보다 크고 작음 연산자를 사용하여 쿼리 할 수 있습니까? –
이것은 임의 또는 정렬 된 파티션을 사용했는지 여부에 달려 있습니다. 무작위 분할자는 노드 전체에 균등하게 분배하므로 범위 쿼리가 데이터를 검색하기 위해 대부분의/모든 노드를 히트해야 할 가능성이 있습니다. 아마도 O (n) 일 수 있습니다. Ordered Partitioner를 사용하면 Cassandra가 질의 할 노드를 정확하게 결정할 수 있으며 그 사이에있는 링의 모든 것을 반환 할 수 있습니다. 그러나 이것은 데이터 분포가 균등 한 (즉, 핫스팟) 비용으로 수행됩니다. 범위 쿼리를 수행 할 수있는 방법이 있습니다 (예 : 행 키가 열인 고유 색인 작성). 이것은 자체적으로 또 다른 질문/토론을 보증합니다. –
분할 된 데이터가 모든 노드 (복제를 위해 설정된 노드)에 복제됩니까? – user3587180