Docs Menu

mongos

MongoDB mongos ์ธ์Šคํ„ด์Šค๋Š” ์ฟผ๋ฆฌ์™€ ์“ฐ๊ธฐ ์ž‘์—…์„ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒค๋“œ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. mongos๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ด€์ ์—์„œ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ์œ ์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ƒค๋“œ์™€ ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ํ†ต์‹ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

mongos๋Š” config ์„œ๋ฒ„์—์„œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹ฑํ•˜์—ฌ ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ์ƒค๋“œ์— ์žˆ๋Š”์ง€ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. mongos ๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ํด๋ผ์ด์–ธํŠธ์—์„œ mongod ์ธ์Šคํ„ด์Šค๋กœ ์ž‘์—…์„ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. mongos์—๋Š” ์˜๊ตฌ ์ƒํƒœ๊ฐ€ ์—†์œผ๋ฉฐ ์ตœ์†Œํ•œ์˜ ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์™€ ๋™์ผํ•œ ์‹œ์Šคํ…œ์—์„œ mongos ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ ์ƒค๋“œ ๋˜๋Š” ๊ธฐํƒ€ ์ „์šฉ ๋ฆฌ์†Œ์Šค์—์„œ mongos ์ธ์Šคํ„ด์Šค๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. mongos์˜ ์ˆ˜์™€ ๋ถ„ํฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

mongos ์ธ์Šคํ„ด์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜์‹ ํ•ด์•ผ ํ•˜๋Š” ์ƒค๋“œ ๋ชฉ๋ก์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ชจ๋“  ํƒ€๊ฒŸํŒ…๋œ ์ƒค๋“œ์— ์ปค์„œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ mongos๋Š” ๊ฐ ๋Œ€์ƒ ์ƒค๋“œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘ํ•ฉํ•˜๊ณ  ๊ฒฐ๊ณผ ๋ฌธ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ ฌ๊ณผ ๊ฐ™์€ ํŠน์ • ์ฟผ๋ฆฌ ์ˆ˜์ •์ž๋Š” mongos๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์ „์— ๊ฐ ์ƒค๋“œ์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์ƒค๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ์ง‘๊ณ„ ์ž‘์—…์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ”„๋ผ์ด๋จธ๋ฆฌ ์ƒค๋“œ์—์„œ ์‹คํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๊ฒฐ๊ณผ๋ฅผ ๋ณ‘ํ•ฉํ•˜๊ธฐ ์œ„ํ•ด ๊ฒฐ๊ณผ๋ฅผ mongos๋กœ ๋‹ค์‹œ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ดํ”„๋ผ์ธ์„mongos์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋Š” ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ๋Š” ๋ถ„ํ•  ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋ณ‘ํ•ฉ ๋ถ€๋ถ„์— ๋ฐ˜๋“œ์‹œ ํ”„๋ผ์ด๋จธ๋ฆฌ ์ƒค๋“œ์—์„œ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ๋‹จ๊ณ„๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์„ ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, $lookup์ด ์ง‘๊ณ„๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋Š” ์ƒค๋“œ ์ปฌ๋ ‰์…˜๊ณผ ๋™์ผํ•œ ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์žˆ๋Š” ๋น„์ƒค๋“œ ์ปฌ๋ ‰์…˜์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, ๋ณ‘ํ•ฉ์€ ํ”„๋ผ์ด๋จธ๋ฆฌ ์ƒค๋“œ์—์„œ ์‹คํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ๊ฒฝ์šฐ๋Š” ๋ถ„ํ•  ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋ณ‘ํ•ฉ ๋ถ€๋ถ„์— ์ž„์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ์— ์“ธ ์ˆ˜ ์žˆ๋Š” ๋‹จ๊ณ„(์˜ˆ: $group)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ allowDiskUse:true๋ฅผ ์ง€์ •ํ•œ ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, ๋ณ‘ํ•ฉ ํŒŒ์ดํ”„๋ผ์ธ์— ํ”„๋ผ์ด๋จธ๋ฆฌ ์ƒค๋“œ๊ฐ€ ํ•„์š”ํ•œ ๋‹ค๋ฅธ ๋‹จ๊ณ„๊ฐ€ ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด, ๋ณ‘ํ•ฉ์€ ์ง‘๊ณ„ ๋Œ€์ƒ ์ƒค๋“œ ์ง‘ํ•ฉ์—์„œ ์ž„์˜๋กœ ์„ ํƒ๋œ ์ƒค๋“œ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ์ฟผ๋ฆฌ์˜ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์— ์ง‘๊ณ„ ์ž‘์—…์„ ๋ถ„ํ• ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ aggregate() ํ˜ธ์ถœ์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ explain:true๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ์„ธ ๊ฐœ์˜ JSON ๊ฐ์ฒด๊ฐ€ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. mergeType๋Š” ๋ณ‘ํ•ฉ ๋‹จ๊ณ„๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์œ„์น˜("primaryShard", "anyShard" ๋˜๋Š” "mongos")๋ฅผ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค. splitPipeline์—๋Š” ๊ฐœ๋ณ„ ์ƒค๋“œ์—์„œ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์–ด๋–ค ์ž‘์—…์ด ์‹คํ–‰๋˜์—ˆ๋Š”์ง€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. shards์€ ๊ฐ ์ƒค๋“œ๊ฐ€ ์ˆ˜ํ–‰ํ•œ ์ž‘์—…์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๊ฒฝ์šฐ์— ๋”ฐ๋ผ, ์ƒค๋“œ ํ‚ค ๋˜๋Š” ์ƒค๋“œ ํ‚ค์˜ ์ ‘๋‘์‚ฌ๊ฐ€ ์ฟผ๋ฆฌ์˜ ์ผ๋ถ€์ธ ๊ฒฝ์šฐ mongos๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒค๋“œ ํ•˜์œ„ ์ง‘ํ•ฉ์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ๋ผ์šฐํŒ…ํ•˜๋Š” ํƒ€๊ฒŸํŒ… ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

mongos์€(๋Š”) ์ƒค๋“œ ํ‚ค๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ์ƒค๋“œ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. ์ƒค๋“œ ํ‚ค๋ฅผ ํฌํ•จํ•˜๋Š” ์ผ๋ถ€ ์ฟผ๋ฆฌ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฐ์ดํ„ฐ ๋ถ„ํฌ์™€ ์ฟผ๋ฆฌ์˜ ์„ ํƒ์„ฑ์— ๋”ฐ๋ผ ์—ฌ์ „ํžˆ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ž‘์—…์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํƒ€๊ฒŸํŒ… ์ž‘์—…๊ณผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ž‘์—…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํƒ€๊ฒŸํŒ… ์ž‘์—… VS ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ž‘์—…์„ ์ฐธ์กฐํ•˜์„ธ์š”.

mongos์€ ํ—ค์ง€๋œ ์ฝ๊ธฐ(hedged read)๋ฅผ ์ง€์›ํ•˜์—ฌ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ—ค์ง€๋œ ์ฝ๊ธฐ(hedged read)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ€ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, mongos ์ธ์Šคํ„ด์Šค๋Š” ์ƒค๋“œ์˜ ๋ชจ๋“  ์ปค์„œ์—์„œ "๋ผ์šด๋“œ ๋กœ๋นˆ" ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒฐ๊ณผ ์ปค์„œ๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ๊ฐ€ limit() ์ปค์„œ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ ์„ธํŠธ์˜ ํฌ๊ธฐ๋ฅผ ์ œํ•œํ•˜๋ฉด mongos ์ธ์Šคํ„ด์Šค๋Š” ํ•ด๋‹น ์ œํ•œ์„ ์ƒค๋“œ์— ์ „๋‹ฌํ•œ ๋‹ค์Œ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์ „์— ๊ฒฐ๊ณผ์— ์ œํ•œ์„ ๋‹ค์‹œ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ๊ฐ€ skip() ์ปค์„œ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฑด๋„ˆ๋›ฐ๊ธฐํ•  ๋ ˆ์ฝ”๋“œ ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ mongos๋Š” ๋ถ„ํ• ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ฑด๋„ˆ๋›ฐ๊ธฐ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์—†์ง€๋งŒ ๋ถ„ํ• ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฑด๋„ˆ๋›ฐ์ง€ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ „์ฒด ๊ฒฐ๊ณผ๋ฅผ ์กฐํ•ฉํ•  ๋•Œ ์ ์ ˆํ•œ ์ˆ˜์˜ ๋ฌธ์„œ๋ฅผ ๊ฑด๋„ˆ ๋œ๋‹ˆ๋‹ค.

limit()์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด mongos๊ฐ€ ์ž‘์—… ํšจ์œจ์„ฑ ๊ฐœ์„ ์„ ์œ„ํ•ด ์ œํ•œ ๋ฐ skip() ๊ฐ’์„ ์ƒค๋“œ์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ mongos๋Š” ์ƒค๋“œ์—์„œ ์ฝ์„ ๋•Œ ์ฝ๊ธฐ ์„ค์ •์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒ๋œ ๋…ธ๋“œ๋Š” ์ฝ๊ธฐ ์„ค์ •๊ณผ replication.localPingThresholdMs ์„ค์ •์˜ ์ ์šฉ์„ ๋ฐ›์œผ๋ฉฐ, ๊ฐ ์ž‘์—…๋งˆ๋‹ค ๋‹ค์‹œ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.

์ฝ๊ธฐ ์„ค์ • ๋ฐ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฝ๊ธฐ ์„ค์ • ๋ฐ ์ƒค๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

mongos ์ธ์Šคํ„ด์Šค๋Š”primary ์ด์™ธ์˜ ์ฝ๊ธฐ ์„ค์ •(read preference)์„ ์‚ฌ์šฉํ•˜๋Š” ์ฝ๊ธฐ๋ฅผ ํ—ค์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ—ค์ง€๋œ ์ฝ๊ธฐ(hedged read)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด mongos ์ธ์Šคํ„ด์Šค๋Š” ์ฟผ๋ฆฌ๋œ ๊ฐ ์ƒค๋“œ๋‹น 2๊ฐœ์˜ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๋กœ ์ฝ๊ธฐ ์ž‘์—…์„ ๋ผ์šฐํŒ…ํ•˜๊ณ  ์ƒค๋“œ๋‹น ์ฒซ ๋ฒˆ์งธ ์‘๋‹ต์ž๋กœ๋ถ€ํ„ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ฝ๊ธฐ ์ž‘์—…์„ ํ—ค์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ „์†ก๋œ ์ถ”๊ฐ€ ์ฝ๊ธฐ๋Š” maxTimeMSForHedgedReads์˜ maxTimeMS ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์ž‘์—…์— ๋Œ€ํ•ด ํ—ค์ง€๋œ ์ฝ๊ธฐ(hedged read)๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค:

ํ—ค์ง€๋œ ์ฝ๊ธฐ(hedged read)๋Š” ์ฝ๊ธฐ ์„ค์ •์˜ ์ผ๋ถ€๋กœ ์ž‘์—…๋ณ„๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๋น„-primary์ฝ๊ธฐ ์„ค์ •์€ ํ—ค์ง€๋œ ์ฝ๊ธฐ(hedged read)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ—ค์ง€๋œ ์ฝ๊ธฐ(hedged read) ์„ค์ •ํ•ญ๋ชฉ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

  • primary ์ด์™ธ์˜ ์ฝ๊ธฐ ์„ค์ •์— ๋Œ€ํ•ด ํ—ค์ง€๋œ ์ฝ๊ธฐ(hedged read)๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด ๋“œ๋ผ์ด๋ฒ„ ์ฝ๊ธฐ ๊ธฐ๋ณธ ์„ค์ • API ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  • ์ฝ๊ธฐ ์„ค์ • nearest๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ—ค์ง€๋œ ์ฝ๊ธฐ(hedged read) ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ฝ๊ธฐ ์„ค์ • ๋ฐ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ, ๋…ธ๋“œ ์„ ํƒ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฝ๊ธฐ ์„ค์ • ๋ฐ ์ƒค๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋ณธ์ ์œผ๋กœ mongos ์ธ์Šคํ„ด์Šค๋Š” ํ—ค์ง€๋œ ์ฝ๊ธฐ(hedged read) ์‚ฌ์šฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ—ค์ง€๋œ ์ฝ๊ธฐ(hedged read)์— ๋Œ€ํ•œ mongos ์ธ์Šคํ„ด์Šค์˜ ์ง€์›์„ ๋„๋ ค๋ฉด readHedgingMode ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ํ—ค์ง€๋œ ์ฝ๊ธฐ(hedged read) ์ง€์›์ด off์ธ ๊ฒฝ์šฐ mongos๋Š” ์ฝ๊ธฐ ์„ค์ •์— ์ง€์ •๋œ hedge ์˜ต์…˜์— ๊ด€๊ณ„์—†์ด ํ—ค์ง€๋œ ์ฝ๊ธฐ(hedged read)๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

serverStatus ๋ช…๋ น๊ณผ ํ•ด๋‹น mongosh ๋ฉ”์„œ๋“œ db.serverStatus()๋Š” hedgingMetrics๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋œ MongoDB ์ธ์Šคํ„ด์Šค๊ฐ€ mongos์ธ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด hello ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ mongos์— ์—ฐ๊ฒฐํ•˜๋ฉด hello๋Š” isdbgrid ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜๋Š” msg ํ•„๋“œ๊ฐ€ ์žˆ๋Š” ๋ฌธ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ:

{
"isWritablePrimary" : true,
"msg" : "isdbgrid",
"maxBsonObjectSize" : 16777216,
"ok" : 1,
...
}

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด mongod์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ฐ˜ํ™˜๋˜๋Š” ๋ฌธ์„œ์— isdbgrid ๋ฌธ์ž์—ด์ด ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ, ์ƒค๋“œ ํ™˜๊ฒฝ์—์„œ ๊ฐ€์žฅ ๋น ๋ฅธ ์ฟผ๋ฆฌ๋Š” mongos๊ฐ€ config ์„œ๋ฒ„์—์„œ ์ƒค๋“œ ํ‚ค์™€ ํด๋Ÿฌ์Šคํ„ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์ผ ์ƒค๋“œ๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ์ฟผ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋Œ€์ƒ ์ž‘์—…์€ ์ƒค๋“œ ํ‚ค ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ ๋ฌธ์„œ๋ฅผ ์ถฉ์กฑํ•˜๋Š” ์ƒค๋“œ ๋˜๋Š” ์ƒค๋“œ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ์ฐพ์Šต๋‹ˆ๋‹ค.

์ƒค๋“œ ํ‚ค๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์€ ์ฟผ๋ฆฌ์˜ ๊ฒฝ์šฐ mongos๋Š” ๋ชจ๋“  ์ƒค๋“œ๋ฅผ ์ฟผ๋ฆฌํ•˜๊ณ  ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฐ ๋‹ค์Œ ๊ฒฐ๊ณผ๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ '๋ถ„์‚ฐ/์ˆ˜์ง‘' ์ฟผ๋ฆฌ ์ž‘์—…์€ ์˜ค๋ž˜ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mongos ์ธ์Šคํ„ด์Šค๋Š” ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ƒค๋“œ ๋˜๋Š” ์ƒค๋“œ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ํ™•์ธํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ  mongos๋Š” ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ์ƒค๋“œ์— ์ฟผ๋ฆฌ๋ฅผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค

Read operations to a sharded cluster. Query criteria does not include the shard key. The query router ``mongos`` must broadcast query to all shards for the collection.

mongos๊ฐ€ ๋ชจ๋“  ์ƒค๋“œ์—์„œ ์‘๋‹ต์„ ์ˆ˜์‹ ํ•œ ํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘ํ•ฉํ•˜๊ณ  ๊ฒฐ๊ณผ ๋ฌธ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ž‘์—…์˜ ์„ฑ๋Šฅ์€ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ „์ฒด ๋ถ€ํ•˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋„คํŠธ์›Œํฌ ๋Œ€๊ธฐ ์‹œ๊ฐ„, ๊ฐœ๋ณ„ ์ƒค๋“œ ๋กœ๋“œ, ์ƒค๋“œ๋‹น ๋ฐ˜ํ™˜๋˜๋Š” ๋ฌธ์„œ ์ˆ˜์™€ ๊ฐ™์€ ๋ณ€์ˆ˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋ฉด ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ž‘์—…์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ž‘์—…๋ณด๋‹ค ํƒ€๊ฒŸํŒ…๋œ ์ž‘์—… ์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ž‘์—…์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์ค‘ ์—…๋ฐ์ดํŠธ ์ž‘์—…์€ ํ•ญ์ƒ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

updateMany() ๋ฐ deleteMany() ๋ฉ”์„œ๋“œ๋Š” ์ฟผ๋ฆฌ ๋ฌธ์„œ์—์„œ ์ƒค๋“œ ํ‚ค ์ „์ฒด๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

mongos์€(๋Š”) ์ƒค๋“œ ํ‚ค ๋˜๋Š” ๋ณตํ•ฉ ์ƒค๋“œ ํ‚ค์˜ ์ ‘๋‘์‚ฌ๊ฐ€ ํฌํ•จ๋œ ์ฟผ๋ฆฌ๋ฅผ ํŠน์ • ์ƒค๋“œ ๋˜๋Š” ์ƒค๋“œ ์ง‘ํ•ฉ์œผ๋กœ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. mongos ์€(๋Š”) ์ƒค๋“œ ํ‚ค ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ”์œ„์— ์ƒค๋“œ ํ‚ค ๊ฐ’์ด ํฌํ•จ๋œ ์ฒญํฌ๋ฅผ ์ฐพ๊ณ  ํ•ด๋‹น ์ฒญํฌ๊ฐ€ ํฌํ•จ๋œ ์ƒค๋“œ์—์„œ ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

Read operations to a sharded cluster. Query criteria includes the shard key. The query router ``mongos`` can target the query to the appropriate shard or shards.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ƒค๋“œ ํ‚ค๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

{ a: 1, b: 1, c: 1 }

mongos ํ”„๋กœ๊ทธ๋žจ์€ ํŠน์ • ์ƒค๋“œ ๋˜๋Š” ์ƒค๋“œ ์ง‘ํ•ฉ์—์„œ ์ „์ฒด ์ƒค๋“œ ํ‚ค ๋˜๋Š” ๋‹ค์Œ ์ƒค๋“œ ํ‚ค ์ ‘๋‘์‚ฌ ์ค‘ ํ•˜๋‚˜๋ฅผ ํฌํ•จํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{ a: 1 }
{ a: 1, b: 1 }

๋ชจ๋“  insertOne() ์ž‘์—…์€ ํ•˜๋‚˜์˜ ์ƒค๋“œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. insertMany() ๋ฐฐ์—ด์˜ ๊ฐ ๋ฌธ์„œ๋Š” ๋‹จ์ผ ๋ถ„ํ• ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜์ง€๋งŒ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ๋ฌธ์„œ๊ฐ€ ๋‹จ์ผ ๋ถ„ํ• ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฝ์ž…๋œ๋‹ค๋Š” ๋ณด์žฅ์€ ์—†์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  updateOne(), replaceOne() ๋ฐ deleteOne() ์ž‘์—…์—๋Š” ๋ฐ˜๋“œ์‹œ ์ฟผ๋ฆฌ ๋ฌธ์„œ์— ์ƒค๋“œ ํ‚ค ๋˜๋Š” _id์ด(๊ฐ€) ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ์ƒค๋“œ ํ‚ค ๋˜๋Š” _id ์—†์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ MongoDB๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

cluster ๋‚ด ๋ฐ์ดํ„ฐ ๋ถ„ํฌ์™€ ์ฟผ๋ฆฌ์˜ ์„ ํƒ๋„์— ๋”ฐ๋ผ mongos๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ ์ž ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒค๋“œ๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด ํ•ด๋‹น ์ฟผ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ์ค‘ ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋˜๋Š” ์ธ๋ฑ์Šค๋Š” ์ƒค๋“œ ํ‚ค ์ธ๋ฑ์Šค ๋˜๋Š” ์ƒค๋“œ์— ์กด์žฌํ•˜๋Š” ๋‹ค๋ฅธ ์ ํ•ฉํ•œ ์ธ๋ฑ์Šค์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฒด ๊ด€๋ฆฌํ˜• ๋‚ด๋ถ€/๋ฉค๋ฒ„์‹ญ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ๋ณด์•ˆ์„ ์‹œํ–‰ํ•˜๊ณ  ๊ถŒํ•œ์ด ์—†๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์— ์•ก์„ธ์Šคํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ์ธ์ฆ์„ ์ง‘ํ–‰ํ•˜๋ ค๋ฉด ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ mongod ๋˜๋Š” mongos๋ฅผ ์ ์ ˆํ•œ ๋ณด์•ˆ ์„ค์ •์œผ๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

MongoDB 5.3๋ถ€ํ„ฐ๋Š” SCRAM-SHA-1์„ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ์ธ์ฆ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. SCRAM-SHA-256๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

์ด์ „ MongoDB ๋ฒ„์ „์—์„œ๋Š” SCRAM์ด ๋ช…์‹œ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š๋”๋ผ๋„ SCRAM-SHA-1๊ณผ SCRAM-SHA-256์„ ๋ชจ๋‘ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ์ธ์ฆ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฒด ๊ด€๋ฆฌํ˜• ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฐฐํฌ์— ๋Œ€ํ•œ ํŠœํ† ๋ฆฌ์–ผ์€ ํ‚คํŒŒ์ผ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ ๋ฐฐํฌํ•˜๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ์ดํ„ฐ ๋ฐ ์ž‘์—…์— ๋Œ€ํ•œ ๋ฌด๋‹จ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•ด ์ž์ฒด ๊ด€๋ฆฌํ˜• ๋ฐฐํฌ์˜ Role-Based Access Control(RBAC)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. RBAC๋ฅผ ์‹œํ–‰ํ•˜๋ ค๋ฉด Config ์„œ๋ฒ„๋ฅผ ํฌํ•จํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ mongod๋ฅผ --auth ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„ ๋ณด์•ˆ์„ ์œ„ํ•ด ์ž์ฒด ๊ด€๋ฆฌํ˜• ๋‚ด๋ถ€/๋ฉค๋ฒ„์‹ญ ์ธ์ฆ์„ ์‹œํ–‰ํ•˜๋ฉด RBAC๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค๋ฅผ ์ œ์–ดํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

RBAC๊ฐ€ ์‹œํ–‰๋˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด mongos ์—ฐ๊ฒฐ ์‹œ --username, --password ๋ฐ --authenticationDatabase๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ํด๋Ÿฌ์Šคํ„ฐ์—๋Š” ์ž์ฒด ํด๋Ÿฌ์Šคํ„ฐ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‚ฌ์šฉ์ž๋Š” ๊ฐœ๋ณ„ ์ƒค๋“œ์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

RBAC๊ฐ€ ํ™œ์„ฑํ™”๋œ MongoDB ๋ฐฐํฌ์— ์‚ฌ์šฉ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํŠœํ† ๋ฆฌ์–ผ์€ ์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์—์„œ ์•ก์„ธ์Šค ์ œ์–ด ํ™œ์„ฑํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

mongos๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๋‹ค์Œ ์ž‘์—…์— ๋Œ€ํ•ด "majority"๊ฐœ์˜ ์“ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ ๋ฒ„์ „ (FCV)์ด mongos ๋ณด๋‹ค ํฐ mongod mongos ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ ๋ฅผ ๋“ค์–ด MongoDB 4์„(๋ฅผ) ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.0 ๋ฒ„์ „ ๋ฅผ ๋กœ mongos 4์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.2 FCV ๊ฐ€ 4 ๋กœ ์„ค์ •ํ•˜๋‹ค ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ2.. ๊ทธ๋Ÿฌ๋‚˜ MongoDB 4๋Š” ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.0 ๋ฒ„์ „ mongos ์„ 4 ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.2 FCV 4๊ฐ€. ๋กœ ์„ค์ •ํ•˜๋‹ค ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ0.

mongod์—๋Š” MongoDB ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋ฐฐํฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ํ’€ํƒ€์ž„ ์ง„๋‹จ ๋ฐ์ดํ„ฐ ์บก์ฒ˜(Full Time Diagnostic Data Capture, FTDC) ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ์›๋ž˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ FTDC diagnostic.data ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. mongod์˜ ๊ฒฝ์šฐ ์ด ๋””๋ ‰ํ† ๋ฆฌ๋Š” storage.dbPath ๋‚ด์— ์žˆ์Šต๋‹ˆ๋‹ค. mongos์˜ ๊ฒฝ์šฐ systemLog.path๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

MongoDB 4.2๋ถ€ํ„ฐ๋Š” ShardingTaskExecutorPoolReplicaSetMatching ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” mongod/mongos ์ธ์Šคํ„ด์Šค ์—ฐ๊ฒฐ ํ’€์˜ ์ตœ์†Œ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค์˜ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ ๊ตฌ์„ฑ์›์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ ํ’€์˜ ์ตœ์†Œ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๋Ÿฐํƒ€์ž„ ์ค‘์— ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mongod ๋ฐ mongos๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ๋ณต์ œ๋ณธ ์„ธํŠธ์— ๋Œ€ํ•ด ๊ฐ ๋ณต์ œ๋ณธ ์„ธํŠธ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ ํ’€์„ ๋ณด์กฐ์ ์œผ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ํ’€์—๋Š” ๊ธฐ๋ณธ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ ์ˆ˜ ์ด์ƒ์˜ ์—ฐ๊ฒฐ ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์ •ํ•˜๋ ค๋ฉด ShardingTaskExecutorPoolReplicaSetMatching ์ฐธ์กฐํ•˜์„ธ์š”.

์ƒค๋”ฉ์ด ์ง‘๊ณ„์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‹ค์šฉ์ ์ธ MongoDB ์ง‘๊ณ„ ์ „์ž์ฑ…์˜ ์ƒค๋”ฉ ์ฑ•ํ„ฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.