mergeAllChunksOnShard
정의
mergeAllChunksOnShard
mergeAllChunksOnShard
지정된 컬렉션 에 대해 샤드 가 소유한 모든 병합 가능한 청크 를 찾아 병합합니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
중요
이 명령은 서버리스 인스턴스에서는 지원되지 않습니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
명령은 다음과 같은 구문을 가집니다:
db.adminCommand( { mergeAllChunksOnShard: <name of the collection>, shard: <name of the shard>, maxNumberOfChunksToMerge: <maximum number of chunks to merge> /* optional */ } )
명령 필드
이 명령은 다음 필드를 사용합니다.
필드 | 유형 | 필요성 | 설명 |
---|---|---|---|
| 문자열 | 필수 사항 | 컬렉션의 이름입니다. |
| 문자열 | 필수 사항 | 샤드의 이름입니다. |
| integer | 옵션 | 병합할 최대 청크 수입니다. |
행동
mergeAllChunksOnShard
동일한 샤드에 있는 collection의 병합 가능한 모든 청크를 찾아서 병합합니다. 동일한 collection에 있는 두 개 이상의 청크는 다음 조건을 모두 충족할 때 병합 할 수 있습니다.
동일한 샤드 가 소유합니다.
이는 점보 청크가 아닙니다.
jumbo
청크는 마이그레이션에 참여할 수 없으므로 병합할 수 없습니다.트랜잭션 및 스냅샷 읽기를 중단하지 않고 기록을 안전하게 삭제할 수 있습니다.
청크와 관련된 마지막 마이그레이션은 적어도
minSnapshotHistoryWindowInSeconds
값만큼 이전에 발생했습니다.청크와 관련된 마지막 마이그레이션은 적어도
transactionLifetimeLimitSeconds
값만큼 이전에 발생했습니다.
예시
이 예시 에서는 모든 청크에 대한 기록이 비어 있고 모든 청크가 점보가 아니라고 가정합니다. 두 조건이 모두 참이므로 동일한 샤드 의 모든 연속 간격을 병합할 수 있습니다.
설정
이 청크는 샤드 키가 x
인 coll
(이)라는 컬렉션에 속합니다. 총 9개의 청크가 있습니다.
청크 ID | Min | 최대 | 샤드 |
---|---|---|---|
a |
|
| 샤드0 |
B |
|
| 샤드0 |
C |
|
| 샤드0 |
D |
|
| 샤드0 |
E |
|
| Shard1 |
F |
|
| Shard1 |
G |
|
| 샤드0 |
h |
|
| 샤드0 |
i |
|
| Shard1 |
단계
결과
이러한 명령이 완료되면 인접한 청크가 병합됩니다. 총 청크는 원래 9개가 아니라 4개 있습니다.
청크 ID | Min | 최대 | 샤드 |
---|---|---|---|
A-B-C-D |
|
| 샤드0 |
E-F |
|
| Shard1 |
G-H |
|
| 샤드0 |
i |
|
| Shard1 |