2012-11-30 2 views
3

현재 CouchDB를보고 있는데 모든 복제를 직접 지정해야한다는 것을 알고 있습니다. 100 노드에서 사용하려면 복제를 어떻게해야합니까? 99 이렇게많은 서버의 couchdb 복제

  • 99 각 노드에서 "에서 복제" "이 복제하여"
    • 이 노드의 복제는
  • 모든 다른 노드의 복제를 포함하기 때문에 그것은 잔인한 것 같은 느낌 다음 단계로 1 개 복제를 수행하면 원을 형성한다 (같은 A -> B -> C -> A)가 다시
  • laten에게 올 때까지
    • 일하는 것이 하나 개의 충돌 때까지, 모든 대기 싸이는 지난

에 처음부터 복제에 대한 큰 것은 말할 수있는 방법이 없을까 "여기에 전체 네트워크의 3 IPS는 있습니다.

+1

어쩌면 [BigCouch] (https://github.com/cloudant/bigcouch)를 대신 사용해야합니까? 기본적으로 노드의 큰 클러스터를 가져와 최종 사용자/응용 프로그램에 대한 CouchDB의 단일 인스턴스로 나타낼 수 있습니다. –

+0

나는 Dominic에 동의합니다. Cloudant를보고 문제를 해결하십시오. 당신은 아마도 BigCouch (그리고 Cloudant)가 당신을 위해하는 일인 sharding입니다. – AndyD

답변

1

BigCouch가 상자 밖으로 십자가 데이터 센터의 물건을 제공하지 않습니다 당신의 통찰력을위한

감사? 그들에게 연결하고 독립적 인 P2P "와 같은 맞는 볼 사람들과 공유 할 수 있습니다. Cloudant DBaaS (기반 BigCouch)는 이미 여러 데이터 센터에서이 설정을 사용하고 있습니다.

BigCouch는 향후 "메인 라인"Apache CouchDB에 병합 될 Apache CouchDB의 "Dynamo 스타일"포크입니다. Shard는 같은 데이터 센터에있는 노드 (서버)에서 작동합니다. "Classic"CouchDB 스타일의 복제는 다양한 데이터 센터의 BigCouches를 서로 동기화 시키려고 사용됩니다.

CouchDB 형 복제 (n-master)는 변경 기반이므로 복제에는 최신 변경 사항 만 포함됩니다.

각 노드/데이터베이스 조합에 대해 복제 쌍을 설정하거나 쌍으로 설정해야합니다. 그러나 모든 서버가 동일하게 설계된 경우 복제는 실제로 자주 발생하지 않으며 필요에 따라 복제가 수행됩니다.

A이 변경되면 복제에서 BC (등)으로 발송합니다. 그러나 B - 방금 변경된 사항이있는 경우 - A이 네트워크 대기 시간 등으로 인해 다시 시도하기 전에 C으로 복제합니다. A이 마침내 시도하면 데이터가 이미 존재한다는 것을 알게됩니다. 변화를 다시 보내라.

표준 설정 인 경우 (즉, 데이터베이스를 만들 때마다 다른 곳으로 복제하기를 원할 때) 설정을 자동화하는 것이 좋습니다.

또한 _replicator 데이터베이스를 확인하십시오. 진행 상황을 훨씬 쉽게 관리 할 수 ​​있습니다. https://gist.github.com/fdmanana/832610

희망 사항이 유용합니다. :)

관련 문제