Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

setIndexCommitQuorum

이 페이지의 내용

  • 호환성
  • 구문
  • 명령 필드
  • 행동
  • 예시
setIndexCommitQuorum

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

이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

참고

이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.

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

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

이 명령은 다음 필드를 사용합니다.

필드
유형
설명

string

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

array

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

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

int or 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

any

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

댓글은 유효한 모든 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 는 인덱싱된 필드의 이름과 정렬 순서를 연결하여 인덱스 이름을 생성했습니다.

돌아가기

설정 기능 호환성 버전