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

자동 합병

이 페이지의 내용

  • 행동
  • 세부 정보
  • 예제

MongoDB 7 부터 시작.0, 밸런서가 병합성 요구 사항을 충족하는 청크를 자동으로 병합할 수 있습니다.

AutoMerger는 밸런싱 작업의 일부로 백그라운드에서 실행됩니다. 대부분의 사용 사례에서는 기본 설정이 잘 작동합니다. 배포에 맞게 사용자 지정할 설정에 대한 자세한 내용은 자동 병합 정책을 참조하세요.

AutoMerger가 실행되면 각 컬렉션의 각 샤드에 대해 병합 가능한 청크의 모든 시퀀스를 함께 스쿼시합니다.

명시적으로 비활성화하지 않는 한, AutoMerger는 밸런서가 처음 활성화될 때 시작되고 루틴이 소모된 후 다음 autoMergerIntervalSecs 동안 일시 중지됩니다.

자동 병합이 활성화되면 autoMergerIntervalSecs 초마다 자동 병합이 발생합니다.

지정된 컬렉션에 대해 AutoMerger는 후속 병합이 autoMergerThrottlingMS 에 지정된 시간 이상 지연되도록 보장합니다.

밸런싱 기간 이 설정된 경우 AutoMerger는 해당 기간 동안에만 실행됩니다.

자동 병합은 밸런싱 작업의 일부로 발생합니다. 자동 병합을 실행할지 여부와 시기를 결정하기 위해 다음과 같은 순서로 설정이 고려됩니다.

  1. 글로벌 밸런싱 설정

  2. 컬렉션별 밸런싱 설정( configureCollectionBalancing 에 의해 구성됨)

  3. 글로벌 자동 병합 설정

  4. 컬렉션별 AutoMerger 설정( configureCollectionBalancing 에 의해 구성됨)

mergeAllChunksOnShard 동일한 샤드에 있는 collection의 병합 가능한 모든 청크를 찾아서 병합합니다. 동일한 collection에 있는 두 개 이상의 청크는 다음 조건을 모두 충족할 때 병합 할 수 있습니다.

이 예제에서는 모든 청크에 대한 기록이 비어 있고 모든 청크가 점보가 아니라고 가정합니다. 두 조건이 모두 참이므로 동일한 샤드의 모든 연속 간격을 병합할 수 있습니다.

이러한 청크는 샤드 키가 xcoll 컬렉션에 속합니다. 총 9개의 청크가 있습니다.

청크 ID
최소
최대
샤드
a
x: 0
x: 10
샤드0
B
x: 10
x: 20
샤드0
C
x: 20
x: 30
샤드0
D
x: 30
x: 40
샤드0
E
x: 40
x: 50
Shard1
F
x: 50
x: 60
Shard1
G
x: 60
x: 70
샤드0
h
x: 70
x: 80
샤드0
i
x: 80
x: 90
Shard1
1
db.adminCommand( { mergeAllChunksOnShard: "db.coll", shard: "Shard0" } )

이 명령은 연속적인 청크 시퀀스를 병합합니다.

  • ABCD

  • GH

2
db.adminCommand( { mergeAllChunksOnShard: "db.coll", shard: "Shard1" } )

이 명령은 연속적인 청크 EF 시퀀스를 병합합니다.

이러한 명령이 완료되면 연속된 청크가 병합됩니다. 원래의 9개 청크 대신 총 4개의 청크가 있습니다.

청크 ID
최소
최대
샤드
ABCD
x: 0
x: 40
샤드0
EF
x: 40
x: 60
Shard1
GH
x: 60
x: 80
샤드0
i
x: 80
x: 90
Shard1
← 샤드 클러스터에서 범위 마이그레이션

이 페이지의 내용