2013-04-05 3 views
1

다음과 같은 사용 사례가있는 추적 플랫폼을 구축 중입니다. 50,000 차량 mongo db의 샤드간에 문서를 동적으로 이동할 수 있습니까?

  • 을 추적하는

    1. 필요는 각각의 차량은 매 60 초 위치를 릴레이합니다.
    2. Xkm 범위의 모든 차량을 반환하는 API를 가져옵니다.

    그래서 크기를 조정하고 쿼리 격리를 수행해야합니다. 샤드 키 (geohash)와 같은 지역을 가진 샤드 클러스터를 생성 할 수 있습니다. 이렇게하면 글의 균형을 유지하고 쿼리 격리를 달성하는 데 도움이됩니다. 그러나 차량이 지역을 가로 질러 이동할 때 어떤 일이 발생하면 mangodb는이 경우 문서를 자동으로 새 샤드로 옮깁니 까?

  • 답변

    2

    한 번 기록 된 레코드의 샤드 키 필드를 변경할 수 없습니다. 이 영역을 샤드 키로 사용하면 원래 영역의 레코드를 삭제하고 새 영역을 사용하여 레코드를 삭제하지 않는 한 영역간에 이동하지 못하게됩니다.

    샤드 키를 선택할 때 가장 일반적인 쿼리 패턴과 일치하는 샤드 키를 찾아보십시오. 샤드 키를 쿼리하면 샤드에서 직접 레코드를 검색 할 수 있습니다. 샤드 키를 사용하지 않는 쿼리는 모든 샤드에 대해 분산 수집 쿼리를 수행해야합니다.

    Mongodb 2.4를 사용 중이거나 범위 기반 쿼리를 수행 할 필요가없는 경우 샤드 키가 단조롭게 증가하더라도 hashed shard key을 사용하여 균등하게 분배 할 수 있습니다. 샤드 키 선택에 대한 조언은 this page을 참조하십시오.

    관련 문제