2009-12-12 5 views
1

예를 들어 트리 (범주 트리)로 구성된 많은 수의 게시판이 있습니다. 모든 카테고리 포함. 따라서 범주 A의 항목을 보면 범주 A의 하위 범주에있는 모든 항목을 볼 수 있습니다. 루트에서보고 있으면 모든 게시판을 볼 수 있습니다.트리 구조 배포

큰 크기 때문에 수평 확장 성을 원합니다.

제가 아는 유일한 방법은 분산 수집입니다. 분산 형 수집은 모든 노드 (또는 모든 노드의 하위 집합이 데이터가 정확히 어디에 있는지 알고있는 경우)와 결과를 수집하는 데이터 노드의 응답 후에 쿼리를 보내고 있음을 의미합니다. 이 방법의 문제점은 데이터 노드에서 페이징을 할 수 없다는 것입니다. 그리고 정렬 및 페이징은 코디네이터 노드 (스 캐터 - 수집을 시작하는 노드)에서 수행되어야하기 때문에 네트워크에서 많은 트래픽을 유발합니다.

수평 확장 성을 얻기 위해 트리 구조를 서버 세트에 분산시키는 다른 가능한 방법이 있습니까?

답변

1

인접한 값이 동일한 블록에 있고 따라서 동일한 서버에있는 경향이있는 일종의 B 트리를 사용하는 것이 좋습니다.

1

내포 된 Distributed Hash Tables으로 모델링 된 트리를 살펴볼 수 있습니다. 그냥 생각.

+0

그래, 나는 그것을 보았다. DHT는 노드 장애의 현재 매우 유망하다. 그러나 네트워크 대역폭과 관련하여 분산 형 수집과 비슷한 작업입니다. 그런데 테라코타 상단에 DHT가 구현되어 있습니까? ;) –

+0

테라코타의 DHT에 대해서는 잘 모르겠지만 Terascore 프로젝트의 오픈 소스 소스가 흥미로울 수 있습니다. http://code.google.com/p/terrastore/ –