2011-03-05 2 views
0

나는 현재 Riak 클러스터를 설계하고 있는데 Riak에게 클러스터의 단일 노드에 특정 키 묶음을 배치해야한다는 것을 암시하는 것이 가능한지 궁금한가요?Riak 데이터를 현지화하는 방법은 무엇입니까?

예를 들어 사용자에게만 액세스 할 수있는 개인 데이터가 있습니다. 이 데이터에는 ~ 10k 개의 문서 (하나의 키/문서에 보관하기에는 너무 큼)가 포함되어 있으며 한 페이지를 게재하려면 ~ 100 개를 검색해야합니다. 단일 노드에서 전체 묶음을 유지하는 것이 더 낫습니다. + 동일한 인스턴스에서이 작업을 더 빠르게 수행하는 것이 좋습니다.

AFAIK 카산드라에서는 쉽게 사용할 수 있습니다. 바로 OrderedPartitioner와 다음과 같은 키를 사용하십시오 : <hash(username)>/<private data key>. 그렇게하면 거의 모든 사용자 키가 단일 노드에 보관됩니다.

답변

5

Riak을 사용하는 데있어 중요한 점 중 하나는 데이터가 복제되고 클러스터 전체에 고르게 분산되어 네트워크 파티션과 정전에 대한 내결함성이 향상된다는 것입니다. 특정 노드에 데이터를 배치하면 해당 목표에 부합하고 취약점이 증가합니다.

+0

저는 Cassandra (노드 수보다 훨씬 많은 사용자 수를 가정)에서 설명한 설치를 사용하여 복제와 균등 분배를 모두 달성 할 수 있다고 생각합니다. 여기서 내가하고 싶은 것은 내 앱을 데이터에 더 가깝게 이동시키고 Map/Reduce 방식을 사용하지만 웹 서비스에 적용하는 것입니다. –

+1

나는 그것을 이해할 수 있으며 MapReduce가 적절한 방법이라고 생각합니다. 그러나 계산을 데이터로 옮기고 데이터가 어디에 존재하는지 결정하는 것은 두 가지 다른 문제입니다. – seancribbs

관련 문제