4

나는 마스터 데이터베이스와 동기화되는 거대한 마스터 CouchDB 데이터베이스와 슬레이브 읽기 전용 CouchDB 데이터베이스를 가지고있다.
변경 비율이 빠르며 서버 간의 채널이 느리고 불안정하기 때문에 주문/우선 순위를 설정하여 어떤 문서가 먼저 올지 정의해야합니다. 우선 순위가 가장 높은 문서가 최신 버전인지 확인하고 목록 끝에있는 문서를 무시할 수 있어야합니다.복제 순서를 제어 할 수 있습니까?

가 가능하지 않은 경우 필터링하지

정렬, 어떤 솔루션이 될 수 있을까?
http://wiki.apache.org/couchdb/Replication
http://couchapp.org/page/index

UPDATE :

자원 난 이미 살펴 보았다 마스터 데이터베이스는 실제로 NPM 레지스트리를 Node.js를하고, 순서는 list of Most Depended-upon Packages입니다. 잠시 후 복제 50G가 항상 실패하기 때문에 proxy을 만들려고합니다. 그러나 사실 "우리는 그 모듈 중 90 %는 필요하지 않지만 우리가 의존하는 모듈에 대해서는 빠른 액세스가 가능합니다."

+0

아마 마스터에서보기를 만들까요? –

+0

3 년 후, 알려진 솔루션입니까? 수락 된 대답에 따르면 모든 병합은 주요 병합 후에 해제되었습니다. 우선 순위 수준을 문서에 지정하고 필터링하면 효과가 있지만 분명히 타협점입니다. –

+0

이 질문에 대한 현상금을 시작하거나 새 질문과 여기에서 링크를 요청하십시오. –

답변

2

짧은 대답은 아니오입니다.

CouchDB는 설계 상 개별 문서 레벨에서만 ACID 보증을 제공합니다. 리플리케이터는 복제 할 때 각 문서를 원자 적으로 업데이트하지만 (복제자가 공개 API 만 사용하는 것처럼) 주문을 보장하지는 않습니다. 대개 처리량을 향상시키기 위해 여러 개의 HTTP 연결을 사용하기 때문입니다. 원한다면 주문을 1로 낮추도록 설정할 수 있습니다 만, 만병 통치약은 아닙니다.

bigcouch 병합 후에는 모든 베팅이 꺼져 있으며 총 주문이 부과되지 않은 여러 소스 및 여러 대상이 있습니다.

0

당신은 설정 필터링 복제 또는 명명 된 문서의 복제 수 : 이들의

모두 전체 데이터베이스를 복제의 대안이다. 작은 배치 크기로 복제를 수행하고 배치를 우선 순위에 맞게 정렬 할 수 있습니다.

+0

필자는 이미 그것을 보았지만 요점은 필터링이 아니라 SORTING입니다. –

+0

최종 결과가 모든 문서가 우선 순위가 지정된 순서대로 복제되는 것이라도? – mzedeler

+1

@ PaulV이 솔루션은 필터링 된 복제를 사용하여 우선 순위가 가장 높은 문서를 먼저 복제합니다.그런 다음 전체 데이터베이스가 복제 될 때까지 반복적으로 필터의 우선 순위 수준을 낮 춥니 다. –

2

CouchDB는 즉시 사용할 수있는 옵션으로 복제 순서를 제어하지 않습니다. 마스터의 다른 데이터베이스에서 서로 다른 우선 순위를 가진 문서를 보관하면 함께 정리할 수 있다고 생각합니다. 그런 다음 우선 순위가 높은 마스터 데이터베이스를 먼저 슬레이브 데이터베이스에 복제하고 우선 순위가 낮은 데이터베이스를 복제 할 수 있습니다.

관련 문제