๋ณต์ ๋ณธ ์ธํธ ๋ฐ์ดํฐ ๋๊ธฐํ
์ด ํ์ด์ง์ ๋ด์ฉ
๊ณต์ ๋ฐ์ดํฐ ์ธํธ ์ ๋ณต์ฌ๋ณธ์ ์ต์ ์ํ๋ก ์ ์งํ๋ ค๋ฉด ๋ณต์ ๋ณธ ์ธํธ ์ ์ธ์ปจ๋๋ฆฌ ๋ฉค๋ฒ๊ฐ ์์ค ๋ฉค๋ฒ์ ๋ฐ์ดํฐ๋ฅผ๋๊ธฐํ ํ๊ฑฐ๋ ๋ณต์ ํฉ๋๋ค. MongoDB ๋ ์ ์ฒด ๋ฐ์ดํฐ ์ธํธ๋ก ์ ๋ฉค๋ฒ๋ฅผ ์ฑ์ฐ๋ ์ด๊ธฐ ๋๊ธฐํ ์ ์ ์ฒด ๋ฐ์ดํฐ ์ธํธ ๋ฐ์ดํฐ ์ธํธ ์ง์์ ์ธ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉ ํ๋ ๋ณต์ , ๋ ๊ฐ์ง ํํ์ ๋ฐ์ดํฐ ๋๊ธฐํ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด๊ธฐ ๋๊ธฐํ
์ด๊ธฐ ๋๊ธฐํ๋ ๋ณต์ ๋ณธ ์ธํธ์ ์์ค ๋ฉค๋ฒ์ ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋์ ๋ฉค๋ฒ๋ก ๋ณต์ฌํฉ๋๋ค. ์์ค ๋ฉค๋ฒ ์ ํ ๊ธฐ์ค์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด๊ธฐ ๋๊ธฐํ ์์ค ์ ํ ์ ์ฐธ์กฐํ์ธ์.
๋ฐ์ดํฐ๋ฒ ์ด์ค local
๋ ์ด๊ธฐ ๋๊ธฐํ ํ๋ก์ธ์ค ์์ ์ฌ์ฉํ๋ oplog ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ๋์ ๋ฉค๋ฒ์ local
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ด๊ธฐ ๋๊ธฐํ ํ๋ก์ธ์ค ๋ฅผ ์๋ฃํ๋ ๋ฐ ํ์ํ oplog ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ ์ ์๋ ์ถฉ๋ถํ ๊ณต๊ฐ์ด ์๋์ง ํ์ธํฉ๋๋ค.
์ฐธ๊ณ
์ด๊ธฐ ๋๊ธฐํ ์ค์ MongoDB๋ ๋์ ๋ฉค๋ฒ์ oplog๋ฅผ ์๋ผ๋ ๋๋ค. ์ด๋ฌํ oplog ์๋ฆผ์ oplog ๋ฐ์ดํฐ์ ์์กดํ๋ ๋ณ๊ฒฝ ์คํธ๋ฆผ๊ณผ ๊ฐ์ ํ๋ก์ธ์ค์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
initialSyncSourceReadPreference
ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํธํ๋ ์ด๊ธฐ ๋๊ธฐํ ์์ค๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ์ด ๋งค๊ฐ๋ณ์๋ mongod
์(๋ฅผ) ์์ํ ๋๋ง ์ง์ ํ ์ ์์ต๋๋ค.
MongoDB 5.2๋ถํฐ ์ด๊ธฐ ๋๊ธฐํ๋ ๋ ผ๋ฆฌ์ ๋๊ธฐํ ๋๋ ํ์ผ ๋ณต์ฌ ๊ธฐ๋ฐ ๋๊ธฐํ ์ค ํ๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๋ ผ๋ฆฌ์ ์ด๊ธฐ ๋๊ธฐํ ํ๋ก์ธ์ค
๋ ผ๋ฆฌ์ ์ด๊ธฐ ๋๊ธฐํ๋ฅผ ์ํํ๋ฉด MongoDB๋ ๋ค์์ ์ํํฉ๋๋ค.
๋ก์ปฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต์ ํฉ๋๋ค. ๋ณต์ ํ๋ ค๋ฉด
mongod
๊ฐ ๊ฐ ์์ค ๋ฉค๋ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ชจ๋ ์ปฌ๋ ์ ์ ์ค์บํ๊ณ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ด๋ฌํ ์ปฌ๋ ์ ์ ์์ฒด ๋ณต์ฌ๋ณธ์ ์ฝ์ ํฉ๋๋ค.๊ฐ ์ปฌ๋ ์ ์ ๋ํด ๋ฌธ์๊ฐ ๋ณต์ฌ๋ ๋ ๋ชจ๋ ์ปฌ๋ ์ ์ ์ธ๋ฑ์ค๋ฅผ ๋น๋ํฉ๋๋ค.
๋ฐ์ดํฐ ๋ณต์ฌ ์ค์ ์๋ก ์ถ๊ฐ๋ oplog ๋ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๋์ ๋ฉค๋ฒ์
local
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ด ๋ฐ์ดํฐ ๋ณต์ฌ ๋จ๊ณ ๋์ ์ด๋ฌํ oplog ๋ ์ฝ๋๋ฅผ ์์๋ก ์ ์ฅ ์ ์๋ ์ถฉ๋ถํ ๋์คํฌ ๊ณต๊ฐ์ด ์๋์ง ํ์ธํฉ๋๋ค.๋ฐ์ดํฐ ์ธํธ์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํฉ๋๋ค.
mongod
๋ ์์ค ๋ฉค๋ฒ์ oplog๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์ ๋ณธ ์ธํธ์ ํ์ฌ ์ํ๋ฅผ ๋ฐ์ํ๋๋ก ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ด๊ธฐ ๋๊ธฐํ๊ฐ ์๋ฃ๋๋ฉด ๋
ธ๋๊ฐ STARTUP2
์ํ์์ SECONDARY
๋ก์ ํ๋ฉ๋๋ค.
์ด๊ธฐ ๋๊ธฐํ๋ฅผ ์ํํ๋ ค๋ฉด ์์ฒด ๊ด๋ฆฌํ ๋ณต์ ๋ณธ ์ธํธ์ ๋ฉค๋ฒ ์ฌ๋๊ธฐํ๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ์ผ ๋ณต์ฌ๋ณธ ๊ธฐ๋ฐ ์ด๊ธฐ ๋๊ธฐํ
MongoDB Enterprise์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ์ผ ๋ณต์ฌ ๊ธฐ๋ฐ ์ด๊ธฐ ๋๊ธฐํ๋ ํ์ผ ์์คํ ์์ ํ์ผ์ ๋ณต์ฌ ๋ฐ ์ด๋ํ์ฌ ์ด๊ธฐ ๋๊ธฐํ ํ๋ก์ธ์ค๋ฅผ ์คํํฉ๋๋ค. ์ด ๋๊ธฐํ ๋ฐฉ๋ฒ์ ๋ ผ๋ฆฌ์ ์ด๊ธฐ ๋๊ธฐํ๋ณด๋ค ๋น ๋ฅผ ์ ์์ต๋๋ค.
์ค์
ํ์ผ ๋ณต์ฌ๋ณธ ๊ธฐ๋ฐ ์ด๊ธฐ ๋๊ธฐํ๋ก ์ธํด ๋ถ์ ํํ ์นด์ดํธ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
ํ์ผ ๋ณต์ฌ ๊ธฐ๋ฐ ์ด๊ธฐ ๋๊ธฐํ๊ฐ ์๋ฃ๋ ํ ์ฟผ๋ฆฌ ์กฐ๊ฑด์ ์์ด count()
๋ฉ์๋๋ฅผ ์คํํ๋ฉด ๋ฐํ๋๋ ๋ฌธ์ ์๊ฐ ์ ํํ์ง ์์ ์ ์์ต๋๋ค.
์ฟผ๋ฆฌ ์กฐ๊ฑด์๊ฐ ์๋ count
๋ฉ์๋๋ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์
๋๋ค: db.<collection>.count()
.
์์ธํ ์์๋ณด๋ ค๋ฉด ์ฟผ๋ฆฌ ์กฐ๊ฑด์(predicate)๊ฐ ์๋ ๋ถ์ ํํ ์นด์ดํธ๋ฅผ์ฐธ์กฐํ์ธ์.
ํ์ผ ๋ณต์ฌ๋ณธ ๊ธฐ๋ฐ ์ด๊ธฐ ๋๊ธฐํ ํ์ฑํ
ํ์ผ ๋ณต์ฌ ๊ธฐ๋ฐ ์ด๊ธฐ ๋๊ธฐํ๋ฅผ ํ์ฑํํ๋ ค๋ฉด, ์ด๊ธฐ ๋๊ธฐํ ๋์ ๋
ธ๋์์ initialSyncMethod
๋งค๊ฐ ๋ณ์๋ฅผ fileCopyBased
๋ก ์ค์ ํฉ๋๋ค. ์ด ๋งค๊ฐ๋ณ์๋ ์์ ๋จ๊ณ์์๋ง ์ค์ ํ ์ ์์ต๋๋ค:
ํ๋
ํ์ผ ๋ณต์ฌ ๊ธฐ๋ฐ ์ด๊ธฐ ๋๊ธฐํ ๋ ๋๊ธฐํ ์ ๋์ ๋ฉค๋ฒ์ local
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฅผ ์์ค ๋ฉค๋ฒ์ local
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก ๋์ฒดํฉ๋๋ค.
์ ํ ์ฌํญ
ํ์ผ ๋ณต์ฌ ๊ธฐ๋ฐ ์ด๊ธฐ ๋๊ธฐํ ์ค์ ๋๋ค:
์์ค ๋ฉค๋ฒ๋ ๋์ ๋ฉค๋ฒ ๋ชจ๋์์ ๋ฐฑ์ ์ ์คํํ ์ ์์ต๋๋ค.
๋์ ๋ฉค๋ฒ์
local
๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ธ ์ ์์ต๋๋ค.
์ด๊ธฐ ๋๊ธฐํ ๋ ํ ๋ฒ์ ํ๋์ ์์ค ๋ฉค๋ฒ์์๋ง ์คํ ์ ์์ต๋๋ค.
์ํธํ๋จ ์คํ ๋ฆฌ์ง ์์ง ์ ์ฌ์ฉํ ๋ MongoDB ๋ ์์ค ๋ฉค๋ฒ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋์์ ์ํธํํฉ๋๋ค.
NVMe ํด๋ฌ์คํฐ์ ์ด๊ธฐ ๋๊ธฐํ
Atlas ์๋ ํ์ฅ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ฅผ ํฌํจํ์ฌ ๋ก์ปฌ NVMe(Non-Volatile Memory Express) SSD ์ ์ฅ ์ต์ ์ ์ฌ์ฉํ๋ ํด๋ฌ์คํฐ์์ ์ด๊ธฐ ๋๊ธฐํ๋ฅผ ์ํํด์ผ ํฉ๋๋ค. Atlas NVMe ํด๋ฌ์คํฐ๋ ์ ์ฅ ๊ณต๊ฐ์ 90%๊ฐ ๊ฐ๋ ์ฐจ๋ฉด ๋ค์ ์์ ๊ณ์ธต์ผ๋ก ์๋ ํ์ฅ๋ฉ๋๋ค. ์ด๊ธฐ ๋๊ธฐํ๋ ํ์ ๋๊ธฐํ์ ๋นํด ์๋ฃํ๋ ๋ฐ ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ํ๋ผ์ด๋จธ๋ฆฌ ๋๊ธฐํ์ ์ฑ๋ฅ์ด ์ ํ๋ฉ๋๋ค.
๋ด๊ฒฐํจ์ฑ
์ด๊ธฐ ๋๊ธฐํ ๋ฅผ ์ํํ๋ ๋์ ๊ตฌ์ฑ์์ด ๋๊ธฐํ ํ๋ก์ธ์ค ์ค์ ์ง์์ ์ธ ๋คํธ์ํฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๋์ ๊ตฌ์ฑ์์ ์ด๊ธฐ ๋๊ธฐํ ํ๋ก์ธ์ค ๋ฅผ ์ฒ์๋ถํฐ ๋ค์ ์์ํฉ๋๋ค.
์ด๊ธฐ ๋๊ธฐํ๋ฅผ ์ํํ๋ ๋์ ๋ ธ๋๋ ์ผ์์ ์ธ ๋คํธ์ํฌ ์ค๋ฅ, ์ปฌ๋ ์ ์ ๊ฑฐ ๋๋ ์ปฌ๋ ์ ์ด๋ฆ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๋๊ธฐํ ํ๋ก์ธ์ค๊ฐ ์ค๋จ๋ ๊ฒฝ์ฐ ๋ค์ ๋๊ธฐํ๋ฅผ ์๋ํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ๊ฐ ๋์ ๋ฉค๋ฒ๋ 24 ์๊ฐ ๋์ ์ด๊ธฐ ๋๊ธฐํ ๋ฅผ ์ฌ๊ฐํ๋ ค๊ณ ์๋ํฉ๋๋ค. initialSyncTransientErrorRetryPeriodSeconds
์๋ฒ ๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ๋ฉค๋ฒ๊ฐ ์ด๊ธฐ ๋๊ธฐํ ๋ฅผ ์ฌ๊ฐํ๋ ค๊ณ ์๋ํ๋ ์๊ฐ์ ์ ์ดํ ์ ์์ต๋๋ค. ๋์ ๊ตฌ์ฑ์์ด ๊ตฌ์ฑ๋ ๊ธฐ๊ฐ ๋์ ์ด๊ธฐ ๋๊ธฐํ ํ๋ก์ธ์ค ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์ฌ๊ฐํ ์ ์๋ ๊ฒฝ์ฐ ๋ณต์ ๋ณธ ์ธํธ ์์ ์๋ก์ด ์ ์ ์์ค ๊ตฌ์ฑ์์ ์ ํํ๊ณ ์ด๊ธฐ ๋๊ธฐํ ํ๋ก์ธ์ค ๋ฅผ ์ฒ์๋ถํฐ ๋ค์ ์์ํฉ๋๋ค.
์ธ์ปจ๋๋ฆฌ๋ ์น๋ช
์ ์ธ ์ค๋ฅ๋ฅผ ๋ฐํํ๊ธฐ ์ ์ ์ต๋ 10
๋ฒ๊น์ง ์ด๊ธฐ ๋๊ธฐํ๋ฅผ ๋ค์ ์์ํ๋ ค๊ณ ์๋ํฉ๋๋ค.
์ด๊ธฐ ๋๊ธฐํ ์์ค ์ ํ
์ด๊ธฐ ๋๊ธฐํ ์์ค ์ ํ์ mongod
์คํํธ์
๋งค๊ฐ ๋ณ์ initialSyncSourceReadPreference
์ ๊ฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
๋ก ์ค์ ํ๋ค
initialSyncSourceReadPreference
primary
chainingAllowed
์ ๊ฒฝ์ฐ( ๊ฐ ๋นํ์ฑํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ ), ํ๋ผ์ด๋จธ๋ฆฌ ๋ฅผ ์์ค ๋ฉค๋ฒ๋ก ์ ํํฉ๋๋ค. ํ๋ผ์ด๋จธ๋ฆฌ ๋ฅผ ์ฌ์ฉํ ์ ์๊ฑฐ๋ ์ฐ๊ฒฐํ ์ ์๋ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ๋ก๊ทธ ํ๊ณ ์ฃผ๊ธฐ์ ์ผ๋ก ํ๋ผ์ด๋จธ๋ฆฌ ๊ฐ์ฉ์ฑ์ ํ์ธํฉ๋๋ค.๋ก ์ค์ ํ๋ค ์ ๊ฒฝ์ฐ(ํฌํํ๋
initialSyncSourceReadPreference
๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ์primaryPreferred
๊ธฐ๋ณธ๊ฐ ), ํ๋ผ์ด๋จธ๋ฆฌ ๋ฅผ ์์ค ๋ฉค๋ฒ๋ก ์ ํํ๋ ค๊ณ ์๋ํฉ๋๋ค. ํ๋ผ์ด๋จธ๋ฆฌ ๋ฅผ ์ฌ์ฉํ ์ ์๊ฑฐ๋ ์ฐ๊ฒฐํ ์ ์๋ ๊ฒฝ์ฐ ๋๋จธ์ง ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ ์ค์์ ๋๊ธฐํ ์์ค ๋ฉค๋ฒ๋ฅผ ์ ํํฉ๋๋ค.์ง์๋๋ ๋ค๋ฅธ ๋ชจ๋ ์ฝ๊ธฐ ๋ชจ๋์ ๊ฒฝ์ฐ ๋์ ๋ฉค๋ฒ์์ ๋๊ธฐํ ์์ค ๋ฉค๋ฒ ์ ํ์ ์ํํฉ๋๋ค.
์ด๊ธฐ ์์ค ๋ฉค๋ฒ ์ ํ์ ์ํํ๋ ๋ฉค๋ฒ๋ ๋ชจ๋ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ ๋ชฉ๋ก์ ๋ ๋ฒ ํต๊ณผํฉ๋๋ค.
๋ฉค๋ฒ๋ ์ด๊ธฐ ์์ค ๋ฉค๋ฒ๋ฅผ ์ ํํ๊ธฐ ์ํ ์ฒซ ๋ฒ์งธ ํจ์ค๋ฅผ ๋ง๋ค ๋ ๊ฐ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ์ ๋ค์ ๊ธฐ์ค์ ์ ์ฉํฉ๋๋ค.
์์ค ๋ฉค๋ฒ๋
PRIMARY
๋๋ ๋ณต์ ์ํ ์ฌ์ผ ํฉ๋๋ค .SECONDARY
์์ค ๋ฉค๋ฒ๋ ์จ๋ผ์ธ ์ด๊ณ ์ฐ๊ฒฐํ ์ ์์ด์ผ ํฉ๋๋ค .
initialSyncSourceReadPreference
๊ฐsecondary
๋๋ ์ธ ๊ฒฝ์ฐ ์์คsecondaryPreferred
๋ฉค๋ฒ๋ ์ธ์ปจ๋๋ฆฌ ์ฌ์ผ ํฉ๋๋ค .์์ค ๋ฉค๋ฒ๊ฐ
visible
๋์ด์ผ ํฉ๋๋ค.์์ค ๋ฉค๋ฒ๋ ํ๋ผ์ด๋จธ๋ฆฌ์ ์ต์ oplog ํญ๋ชฉ์ผ๋ก๋ถํฐ
30
์ด ์ด๋ด์ ์์ด์ผ ํฉ๋๋ค.builds indexes
๋ฉค๋ฒ์ธ ๊ฒฝ์ฐ ์์ค ๋ฉค๋ฒ๋ ์ธ๋ฑ์ค๋ฅผ ๋น๋ ํด์ผ ํฉ๋๋ค.votes
๋ฉค๋ฒ๊ฐ ๋ณต์ ๋ณธ ์ธํธ ํฌํ์ ์ฐธ์ฌํ๋ ๊ฒฝ์ฐ ์์ค ๋ฉค๋ฒ๋ ํฌํ ํด์ผ ํฉ๋๋ค .๋ฉค๋ฒ๊ฐ ์ด
delayed member
์๋ ๊ฒฝ์ฐ ์์ค ๋ฉค๋ฒ๊ฐ ์ง์ฐ ๋์ง ์์์ผ ํฉ๋๋ค.๋ฉค๋ฒ ๊ฐ
delayed member
์ธ ๊ฒฝ์ฐ ์์ค ๋ฉค๋ฒ์ ๊ตฌ์ฑ๋ ์ง์ฐ์ด ๋ ์งง์์ผ ํฉ๋๋ค.์์ค ๋ฉค๋ฒ๋ ํ์ฌ ์ต์์ ๋๊ธฐํ ์์ค๋ณด๋ค ๋นจ๋ผ์ผ ํฉ๋๋ค .
์ฒซ ๋ฒ์งธ ์ ๋ฌ ํ์๋ ํ๋ณด ์์ค ๋ฉค๋ฒ๊ฐ ๋จ์ ์์ง ์์ผ๋ฉด ํด๋น ๋ฉค๋ฒ๋ ์ํ๋ ๊ธฐ์ค์ผ๋ก ๋ ๋ฒ์งธ ์ ๋ฌ์ ์ํํฉ๋๋ค. Sync Source Selection (Second Pass) ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
๋ฉค๋ฒ๋ ์ด๊ธฐ ์์ค ๋ฉค๋ฒ๋ฅผ ์ ํํ๊ธฐ ์ํด ๋ ๋ฒ์งธ ๋จ๊ณ๋ฅผ ์ํํ ๋ ๊ฐ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ์ ๋ค์ ๊ธฐ์ค์ ์ ์ฉํฉ๋๋ค.
์์ค ๋ฉค๋ฒ๋
PRIMARY
๋๋ ๋ณต์ ์ํ ์ฌ์ผ ํฉ๋๋ค .SECONDARY
์์ค ๋ฉค๋ฒ๋ ์จ๋ผ์ธ ์ด๊ณ ์ฐ๊ฒฐํ ์ ์์ด์ผ ํฉ๋๋ค .
initialSyncSourceReadPreference
secondary
๊ฐ ์ธ ๊ฒฝ์ฐ ์์ค ๋ฉค๋ฒ๋ ์ธ์ปจ๋๋ฆฌ ์ฌ์ผ ํฉ๋๋ค .builds indexes
๋ฉค๋ฒ์ธ ๊ฒฝ์ฐ ์์ค ๋ฉค๋ฒ๋ ์ธ๋ฑ์ค๋ฅผ ๋น๋ ํด์ผ ํฉ๋๋ค.์์ค ๋ฉค๋ฒ๋ ํ์ฌ ์ต์์ ๋๊ธฐํ ์์ค๋ณด๋ค ๋นจ๋ผ์ผ ํฉ๋๋ค .
๋์ ๋ฉค๋ฒ๊ฐ ๋ ๋ฒ์ ํจ์ค ํ์๋ ์์ค ๋ฉค๋ฒ๋ฅผ ์ ํํ ์ ์๋ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ๊ธฐ๋กํ๊ณ 1
์ด๊ฐ ๊ธฐ๋ค๋ฆฐ ํ ์ ํ ํ๋ก์ธ์ค๋ฅผ ๋ค์ ์์ํฉ๋๋ค. ์ธ์ปจ๋๋ฆฌ mongod
๋ ์ค๋ฅ๋ก ์ข
๋ฃ๋๊ธฐ ์ ์ ์ด๊ธฐ ๋๊ธฐํ ์์ค ์ ํ ํ๋ก์ธ์ค๋ฅผ ์ต๋ 10
๋ฒ ๋ค์ ์์ํ ์ ์์ต๋๋ค.
Oplog ์๋์ฐ (oplog window)
oplog window ๋ ๋์ ๋ฉค๋ฒ๊ฐ ๋
ผ๋ฆฌ์ ์ด๊ธฐ ๋๊ธฐํ ํ๋ก์ธ์ค ์ ์์๊ณผ ๋ ์ฌ์ด์ ๋ฐ์ํ๋ ์ oplog ํญ๋ชฉ์ ๊ฐ์ ธ์ฌ ์ ์์ ๋งํผ ์ถฉ๋ถํ ๊ธธ์ด์ผ ํฉ๋๋ค. ์ฐฝ ์ด ์ถฉ๋ถํ ๊ธธ์ง ์์ ๊ฒฝ์ฐ ๋์ ๋ฉค๋ฒ๊ฐ ํญ๋ชฉ์ ์ ์ฉ ํ๊ธฐ ์ ์ ์ผ๋ถ ํญ๋ชฉ์ด oplog
์์ ๋จ์ด์ง ์ํ์ด ์์ต๋๋ค.
์ oplog
ํญ๋ชฉ์ ๊ฐ์ ธ์ฌ ์ ์๋๋ก oplog
์ ํฌ๊ธฐ๋ฅผ ๋๋ํ๊ฒ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ ์ด๊ธฐ ๋๊ธฐํ ๋์ ๋ฐ์ํ ์ ์๋ ๋ณ๊ฒฝ์ฌํญ์ ๋๋นํ๋ ๊ฒ์
๋๋ค.
์์ธํ ๋ด์ฉ์ Oplog ํฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ณต์
๋์ ๋ฉค๋ฒ๋ ์ด๊ธฐ ๋๊ธฐํ ํ ์ง์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ํฉ๋๋ค. ๋์ ๋ฉค๋ฒ๋ ์์ค ๋ฉค๋ฒ๋ก๋ถํฐ oplog ๋ฅผ ๋ณต์ฌํ๊ณ ๋น๋๊ธฐ ํ๋ก์ธ์ค ์์ ์ด๋ฌํ ์์ ์ ์ ์ฉ ํฉ๋๋ค.
๋์ ๋ฉค๋ฒ๋ ๋ค๋ฅธ ๋ฉค๋ฒ์ ํ ์๊ฐ ๋ฐ ๋ณต์ ์ํ ์ ๋ณํ์ ๋ฐ๋ผ ํ์์ ๋ฐ๋ผ ์์ค ๋ฉค๋ฒ๋ฅผ ์๋์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. ์์ค ๋ฉค๋ฒ ์ ํ ๊ธฐ์ค์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ณต์ ๋๊ธฐํ ์์ค ์ ํ ์ ์ฐธ์กฐํ์ธ์.
์คํธ๋ฆฌ๋ฐ ๋ณต์
์์ค ๋ฉค๋ฒ๋ ๋์ ๋ฉค๋ฒ์๊ฒ ์ง์์ ์ธ oplog ํญ๋ชฉ ์คํธ๋ฆผ ์ ๋ณด๋ ๋๋ค. ์คํธ๋ฆฌ๋ฐ ๋ณต์ ๋ ๋ถํ๊ฐ ๋๊ณ ์ง์ฐ ์๊ฐ์ด ๊ธด ๋คํธ์ํฌ์์ ๋ณต์ ์ง์ฐ ์ ์ํํฉ๋๋ค. ๋ํ ๋ค์์ ์ํํฉ๋๋ค.
๋ณด์กฐ ๋ฐ์ดํฐ์์ ์ฝ์ ๋ฐ์ดํฐ์ ๋ถ์คํจ์ ๊ฐ์.
ํ๋ผ์ด๋จธ๋ฆฌ ํ์ผ์ค๋ฒ๋ก ์ธํด w: 1 ์ค์ ์ผ๋ก ์ฐ๊ธฐ ์์ ์ด ์์ค๋ ์ํ์ด ์ค์ด๋ญ๋๋ค.
w: "majority"
๋ฐ w: >1(์ฆ, ๋ณต์ ๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํ๋ ๋ชจ๋ ์ฐ๊ธฐ ๊ณ ๋ ค)์ ์ฌ์ฉํ ์ฐ๊ธฐ ์์ ์ ์ง์ฐ ์๊ฐ์ ์ค์ ๋๋ค.
์คํธ๋ฆฌ๋ฐ ๋ณต์ ๋ฅผ ๋นํ์ฑํํ๊ณ ์ด์ ๋ณต์ ๋์์ ์ฌ์ฉํ๋ ค๋ฉด oplogFetcherUsesExhaust
์คํํธ์
๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์์ค ๋ฉค๋ฒ์ ๋ํ ๋ฆฌ์์ค ์ ์ฝ์ด ์๊ฑฐ๋ ๋ณต์ ๋ฅผ ์ํ MongoDB์ ๋คํธ์ํฌ ๋์ญํญ ์ฌ์ฉ์ ์ ํํ๋ ค๋ ๊ฒฝ์ฐ์๋ง oplogFetcherUsesExhaust
๋งค๊ฐ๋ณ์๋ฅผ false
๋ก ์ค์ ํฉ๋๋ค.
๋ฉํฐ์ค๋ ๋ ๋ณต์
MongoDB๋ ๋์์ฑ์ ํฅ์์ํค๊ธฐ ์ํด ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ธฐ ์์ ์ ๋ฐฐ์น๋ก ์ ์ฉํฉ๋๋ค. MongoDB๋ ๋ฌธ์ ID(WiredTiger)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์น๋ฅผ ๊ทธ๋ฃนํํ๊ณ , ๋ค๋ฅธ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์์ ๊ทธ๋ฃน์ ๋์์ ์ ์ฉํฉ๋๋ค. MongoDB๋ ํญ์ ํน์ ๋ฌธ์์ ๋ํ ์ฐ๊ธฐ ์์ ์ ์๋ ์ฐ๊ธฐ ์์๋๋ก ์ ์ฉํฉ๋๋ค.
์ฝ๊ธฐ ์์
์ด ์ธ์ปจ๋๋ฆฌ๋ฅผ ๋์์ผ๋ก ํ๊ณ "local"
๋๋ "majority"
์ ์ฝ๊ธฐ ๊ณ ๋ ค ์์ค์ผ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ, ๋ณต์ ๋ฐฐ์น๊ฐ ์ ์ฉ๋๋ ์ธ์ปจ๋๋ฆฌ์ ์ฝ๊ธฐ๊ฐ ์ํ๋ ๋ ๋ฐ์ดํฐ์ WiredTiger ์ค๋
์ท์์ ์ฝ์ต๋๋ค.
์ค๋ ์ท์์ ์ฝ๊ธฐ๋ ๋ฐ์ดํฐ์ ์ผ๊ด๋ ๋ทฐ๋ฅผ ๋ณด์ฅํ๊ณ , ์ ๊ธ ์์ด ์งํ ์ค์ธ ๋ณต์ ์ ๋์์ ์ฝ๊ธฐ๋ฅผ ์ํํ ์ ์๋๋ก ํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก, ์ด๋ฌํ ์ฝ๊ธฐ ๊ณ ๋ ค ์์ค์ด ํ์ํ ๋ณด์กฐ ์ฝ๊ธฐ๋ ๋ ์ด์ ๋ณต์ ๋ฐฐ์น๊ฐ ์ ์ฉ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆด ํ์ ์์ด ์์ ๋๋ ๋๋ก ์ฒ๋ฆฌ๋ ์ ์์ต๋๋ค.
ํ๋ฆ ์ ์ด
๊ด๋ฆฌ์๋ majority
committed
์ง์ฐ์ ๊ตฌ์ฑ ๊ฐ๋ฅํ ์ต๋๊ฐ flowControlTargetLagSeconds
์ดํ๋ก ์ ์งํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ผ์ด๋จธ๋ฆฌ๊ฐ ์ฐ๊ธฐ๋ฅผ ์ ์ฉํ๋ ์๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ฆ ์ ์ด๋ enabled
์
๋๋ค.
์ฐธ๊ณ
ํ๋ฆ ์ ์ด๊ฐ ์๋ํ๋ ค๋ฉด ๋ณต์ ๋ณธ ์ธํธ/ ์ค๋ฉ๋ ํด๋ฌ์คํฐ ์ ์featureCompatibilityVersion (FCV) ๋ฐ ์ฝ๊ธฐ ๊ณ ๋ ค (read concern) 4.2
majority enabled
๊ณ ๋ ค ๊ฐ ์์ด์ผ ํฉ๋๋ค. ์ฆ, FCV ๊ฐ ์ด 4.2
์๋๊ฑฐ๋ ์ฝ๊ธฐ ๊ณ ๋ ค (read concern) ๋๋ค์๊ฐ ๋นํ์ฑํ๋ ๊ฒฝ์ฐ ํ์ฑํ๋ ํ๋ฆ ์ ์ด๋ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ ํ๋ฆ ์ ์ด๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ณต์ ๋๊ธฐํ ์์ค ์ ํ
๋ณต์ ์์ค ๋ฉค๋ฒ ์ ํ์ ๋ณต์ ๋ณธ ์ธํธ chaining
์ค์ ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
์ฒด์ธ์ด ํ์ฑํ๋ ์ํ(๊ธฐ๋ณธ๊ฐ)์์ ๋์ ๋ฉค๋ฒ์์ ์์ค ๋ฉค๋ฒ ์ ํ์ ์ํํฉ๋๋ค.
์ฒด์ธ์ ์ฌ์ฉํ์ง ์๋๋ก ์ค์ ํ ์ํ์์ ํ๋ผ์ด๋จธ๋ฆฌ๋ฅผ ์์ค ๋ ธ๋๋ก ์ ํํฉ๋๋ค. ํ๋ผ์ด๋จธ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ฑฐ๋ ์ฐ๊ฒฐํ ์ ์๋ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ๋ก๊น ํ๊ณ ์ ๊ธฐ์ ์ผ๋ก ํ๋ผ์ด๋จธ๋ฆฌ ๊ฐ์ฉ์ฑ์ ํ์ธํฉ๋๋ค.
๋ณต์ ์์ค ๋ฉค๋ฒ ์ ํ์ ์ํํ๋ ๋ฉค๋ฒ๋ ๋ชจ๋ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ ๋ชฉ๋ก์ ๋ ๋ฒ ํต๊ณผํฉ๋๋ค.
๋ฉค๋ฒ๋ ์์ค ๋ฉค๋ฒ๋ฅผ ์ ํํ๊ธฐ ์ํ ์ฒซ ๋ฒ์งธ ์ ๋ฌ์ ๋ง๋ค ๋ ๊ฐ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ์ ๋ค์ ๊ธฐ์ค์ ์ ์ฉํฉ๋๋ค.
์์ค ๋ฉค๋ฒ๋
PRIMARY
๋๋ ๋ณต์ ์ํ ์ฌ์ผ ํฉ๋๋ค .SECONDARY
์์ค ๋ฉค๋ฒ๋ ์จ๋ผ์ธ ์ด๊ณ ์ฐ๊ฒฐํ ์ ์์ด์ผ ํฉ๋๋ค .
์์ค ๋ฉค๋ฒ๋ ํด๋น ๋ฉค๋ฒ๋ณด๋ค ์ต์ oplog ํญ๋ชฉ์ ๊ฐ์ง๊ณ ์์ด์ผ ํฉ๋๋ค . ์ฆ, ์์ค ๋ฉค๋ฒ๊ฐ ๋ฉค๋ฒ ๋ณด๋ค ์์ ์์ด์ผ ํฉ๋๋ค.
์์ค ๋ฉค๋ฒ๊ฐ
visible
๋์ด์ผ ํฉ๋๋ค.์์ค ๋ฉค๋ฒ๋ ํ๋ผ์ด๋จธ๋ฆฌ์ ์ต์ oplog ํญ๋ชฉ์ผ๋ก๋ถํฐ
30
์ด ์ด๋ด์ ์์ด์ผ ํฉ๋๋ค.builds indexes
๋ฉค๋ฒ์ธ ๊ฒฝ์ฐ ์์ค ๋ฉค๋ฒ๋ ์ธ๋ฑ์ค๋ฅผ ๋น๋ ํด์ผ ํฉ๋๋ค.votes
๋ฉค๋ฒ๊ฐ ๋ณต์ ๋ณธ ์ธํธ ํฌํ์ ์ฐธ์ฌํ๋ ๊ฒฝ์ฐ ์์ค ๋ฉค๋ฒ๋ ํฌํ ํด์ผ ํฉ๋๋ค .๋ฉค๋ฒ๊ฐ ์ด
delayed member
์๋ ๊ฒฝ์ฐ ์์ค ๋ฉค๋ฒ๊ฐ ์ง์ฐ ๋์ง ์์์ผ ํฉ๋๋ค.๋ฉค๋ฒ ๊ฐ
delayed member
์ธ ๊ฒฝ์ฐ ์์ค ๋ฉค๋ฒ์ ๊ตฌ์ฑ๋ ์ง์ฐ์ด ๋ ์งง์์ผ ํฉ๋๋ค.์์ค ๋ฉค๋ฒ๋ ํ์ฌ ์ต์์ ๋๊ธฐํ ์์ค๋ณด๋ค ๋นจ๋ผ์ผ ํฉ๋๋ค .
์ฒซ ๋ฒ์งธ ์ ๋ฌ ์ดํ์ ํ๋ณด ์์ค ๋ฉค๋ฒ๊ฐ ๋จ์ ์์ง ์์ผ๋ฉด ๋ฉค๋ฒ๋ ์ํ๋ ๊ธฐ์ค์ผ๋ก ๋ ๋ฒ์งธ ์ ๋ฌ์ ์ํํฉ๋๋ค. Sync Source Selection (Second Pass) ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
๋ฉค๋ฒ๋ ์์ค ๋ฉค๋ฒ๋ฅผ ์ ํํ๊ธฐ ์ํด ๋ ๋ฒ์งธ ๋จ๊ณ๋ฅผ ์ํํ ๋ ๊ฐ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ์ ๋ค์ ๊ธฐ์ค์ ์ ์ฉํฉ๋๋ค.
์์ค ๋ฉค๋ฒ๋
PRIMARY
๋๋ ๋ณต์ ์ํ ์ฌ์ผ ํฉ๋๋ค .SECONDARY
์์ค ๋ฉค๋ฒ๋ ์จ๋ผ์ธ ์ด๊ณ ์ฐ๊ฒฐํ ์ ์์ด์ผ ํฉ๋๋ค .
builds indexes
๋ฉค๋ฒ์ธ ๊ฒฝ์ฐ ์์ค ๋ฉค๋ฒ๋ ์ธ๋ฑ์ค๋ฅผ ๋น๋ ํด์ผ ํฉ๋๋ค.์์ค ๋ฉค๋ฒ๋ ํ์ฌ ์ต์์ ๋๊ธฐํ ์์ค๋ณด๋ค ๋นจ๋ผ์ผ ํฉ๋๋ค .
๋ ๋ฒ ํต๊ณผํ ํ์๋ ๋ฉค๋ฒ๊ฐ ๋๊ธฐํ ์์ค๋ฅผ ์ ํํ ์ ์๋ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ๋ก๊น
ํ๊ณ 1
์ด๋ฅผ ๊ธฐ๋ค๋ฆฐ ํ ์ ํ ํ๋ก์ธ์ค๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
์๊ฐ๋น ์์ค ๋ฉค๋ฒ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ํ์๋ maxNumSyncSourceChangesPerHour
๋งค๊ฐ ๋ณ์๋ฅผ ์ค์ ํ์ฌ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ฐธ๊ณ
์ด๊ธฐ ๋๊ธฐํ ์์ค ๋ฉค๋ฒ๋ฅผ ์ ํํ ๋ ์คํํธ์
๋งค๊ฐ๋ณ์ initialSyncSourceReadPreference
๊ฐ ๋ณต์ ๋ณธ ์ธํธ์ settings.chainingAllowed
์ค์ ๋ณด๋ค ์ฐ์ ํฉ๋๋ค. ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๊ฐ ์ด๊ธฐ ๋๊ธฐํ ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์ํํ ํ์๋ ์์ค ๋ฉค๋ฒ๋ฅผ ์ ํํ ๋ chainingAllowed
๊ฐ์ ์ฌ์ฉํฉ๋๋ค.
์ด๊ธฐ ๋๊ธฐํ ์์ค ์ ํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด๊ธฐ ๋๊ธฐํ ์์ค ์ ํ์ ์ฐธ์กฐํ์ธ์.