문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / /

setIndexCommitQuorum

이 페이지의 내용

  • 행동
  • 예제
setIndexCommitQuorum

프라이머리가 해당 인덱스를 준비됨으로 표시하기 전에 진행 중인 동시 인덱스 빌드 를 완료해야 하는 프라이머리를 포함한 데이터 보유 멤버의 최소 수(즉, 쿼럼 커밋)를 변경합니다.

명령은 다음과 같은 구문을 가집니다:

db.runCommand({
setIndexCommitQuorum: <string>,
indexNames: [ <document> ],
commitQuorum: <int> | <string>,
comment: <any>
})

이 명령은 다음 매개 변수를 사용합니다.

필드
유형
설명
setIndexCommitQuorum
string

인덱스가 빌드되는 컬렉션의 이름입니다.

array

수정할 진행 중인 인덱스 빌드의 배열입니다. 배열의 각 요소는 인덱스의 이름 이어야 합니다.

indexNames 에 지정된 인덱스는 해당 인덱스 빌더와 연결된 진행 중인 빌드의 전체 세트, 즉 단일 createIndexes 또는 db.collection.createIndexes() 작업으로 구축된 인덱스여야 합니다.

int 또는 string

프라이머리 등 데이터를 보유하는 복제본 세트 멤버의 최소 수(즉, 쿼럼 커밋)이며, 이는 프라이머리가 indexes를 준비됨으로 표시하기 전에 성공적인 인덱스 빌드를 보고해야 합니다.

MongoDB v5 부터 시작됩니다.0, 쿼럼 커밋이 "votingMembers" 로 설정되면 중단된 일부 인덱스 빌드 를 재개할 수 있습니다.

쿼럼 커밋의 복제본 세트 노드에서 members[n].buildIndexestrue로 설정되어 있어야 합니다. 투표 노드에 members[n].buildIndexesfalse로 설정된 경우 기본 "votingMembers" 쿼럼 커밋을 사용할 수 없습니다. 모든 노드를 members[n].buildIndexes true로 구성하거나 다른 쿼럼 커밋을 선택합니다.

는 다음과 같은 값을 지원합니다.

  • "votingMembers" - 모든 데이터를 보유하는 투표 복제본 세트 멤버(기본값)입니다. "투표" 멤버는 members[n].votes0보다 큰 모든 복제본 세트 노드를 말합니다.

  • "majority" - 데이터 보유 복제본 세트 멤버의 단순 과반수입니다.

  • <int> - 특정 수의 데이터를 보유하는 복제본 세트 멤버입니다. 0 보다 큰 정수를 지정합니다.

  • 복제본 세트 태그 이름.

comment
어떤

선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.

댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다.

참고

featureCompatibilityVersion 4.4 이상이 필요합니다.

복제본 mongod 세트 또는 샤딩된 클러스터의 각 4.4 에는 복제본 세트 멤버 간에 인덱스 빌드를 동시에 시작할 수 있도록 featureCompatibilityVersion 이 이상으로 설정되어 있어야 합니다 .

setIndexCommitQuorum 를 발행해도 0commitQuorum 으로 시작된 인덱스 빌드에는 영향을 주지 않습니다.

중요

buildIndexesfalse 로 설정된 복제본 세트 노드는 쿼럼 커밋에 포함될 수 없습니다.

복제본 세트 또는 샤딩된 클러스터에서 인덱스 빌드가 데이터를 보유한 모든 복제본 세트 멤버에서 동시에 진행됩니다. 샤딩된 클러스터의 경우 인덱스 빌드는 인덱싱되는 컬렉션에 대한 데이터가 포함된 샤드에서만 발생합니다. 프라이머리에는 인덱스를 사용할 준비가 된 것으로 표시하기 전에 빌드를 완료해야 하는 자신을 포함한 최소한의 데이터 보유 voting 멤버(즉, 쿼럼 커밋)가 필요합니다. 자세한 내용은 복제된 환경에서의 인덱스 빌드를 참조하세요.

다음 작업은 두 인덱스의 인덱스 빌드를 시작합니다.

db.getSiblingDB("examples").invoices.createIndexes(
[
{ "invoices" : 1 },
{ "fulfillmentStatus" : 1 }
]
)

기본적으로 인덱스 빌드는 "votingMembers" 쿼럼 커밋 또는 모든 데이터 보유 투표 복제본 세트 멤버를 사용합니다. 다음 작업은 인덱스 빌드 커밋 쿼럼을 "majority" 또는 데이터 보유 투표 멤버의 단순 과반수로 수정합니다.

db.getSiblingDB("examples").runCommand(
{
"setIndexCommitQuorum" : "invoices",
"indexNames" : ["invoices_1", "fullfillmentStatus_1"],
"commitQuorum" : "majority"
}
)
  • indexNames 에 지정된 인덱스는 지정된 인덱스 빌더, 즉 createIndexes() 작업과 연결된 진행 중인 빌드의 전체 세트여야 합니다.

  • indexNames 필드는 인덱스의 이름 을 지정합니다. 인덱스는 명시적인 이름 없이 생성되었으므로 MongoDB는 인덱싱된 필드의 이름과 정렬 순서를 연결하여 인덱스 이름을 생성했습니다.

돌아가기

설정 기능 호환성 버전

다음

setParameter

이 페이지의 내용