MongoDB의 sharded cluster에서 데이터는 chunk 단위로 저장/관리 됨.

chunk size의 기본값은 64MB.


chunk size가 크면 migration은 적게 일어나겠지만 한 번 일어나면 대규모 migration이 될 것이고,

chunk size가 작으면 소규모 migration이 자주 일어날 것임.


왠만하면 기본값으로 두는 게 가장 무난하나,

테스트 용도로 chunk size를 변경시킬 일이 있을 땐 아래처럼 하면 됨.


// config 서버 선택

mongos> use config


// settings에서 chunksize 항목 변경

// value에 지정하고픈 chunk size를 MB로 입력해주면 됨. 범위는 1 ~ 1024

// 아래는 chunk size를 32MB로 변경

mongos> db.settings.save({_id: "chunksize", value: 32})



chunk size 변경에는 아래와 같은 제약사항이 있음.

- chunk 자동 split은 insert/update가 있을 때에만 일어남.

- 데이터가 이미 존재하는 cluster에서 chunk size를 줄이면 기존 chunk들을 줄어든 size로 나누는 과정이 일어남.

- 나눠진 chunk는 다시 병합할 수 없음. (실수로 1MB로 변경했다가 울어도 소용 없다)

- chunk size를 크게 변경했을 때 기존 chunk들은 insert/update가 일어날 때에만 늘어날 수 있음.

- chunk size 범위는 1 ~ 1024




[참고]

http://docs.mongodb.org/manual/tutorial/modify-chunk-size-in-sharded-cluster/







Posted by bloodguy
,