๋ณต์ ๋ณธ ์ธํธ ๋ฐ์ดํฐ ๋๊ธฐํ
์ด ํ์ด์ง์ ๋ด์ฉ
๊ณต์ ๋ฐ์ดํฐ ์ธํธ์ ์ฌ๋ณธ์ ์ต์ ์ํ๋ก ์ ์งํ๊ธฐ ์ํด ๋ณต์ ๋ณธ ์ธํธ์ ์ธ์ปจ๋๋ฆฌ ๋ฉค๋ฒ๋ ๋ค๋ฅธ ๋ฉค๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํํ๊ฑฐ๋ ๋ณต์ ํฉ๋๋ค. MongoDB๋ ์ ์ฒด ์ธํธ๋ก ์ ๊ตฌ์ฑ์์ ์ฑ์ฐ๋ ์ด๊ธฐ ๋๊ธฐํ์ ์ ์ฒด ์ธํธ์ ์ง์์ ์ธ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ ๋ณต์ , ๋ ๊ฐ์ง ํํ์ ๋ฐ์ดํฐ ๋๊ธฐํ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด๊ธฐ ๋๊ธฐํ
์ด๊ธฐ ๋๊ธฐํ๋ ๋ณต์ ๋ณธ ์ธํธ์ ๋ฉค๋ฒ ํ ๊ฐ์ ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ๋ฉค๋ฒ๋ก ๋ณต์ฌํฉ๋๋ค. ์ด๊ธฐ ๋๊ธฐํ ์์ค ์ ํ ๊ธฐ์ค์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด ์ด๊ธฐ ๋๊ธฐํ ์์ค ์ ํ์ ์ฐธ์กฐํ์ธ์.
๋ฐ์ดํฐ๋ฒ ์ด์ค local
๋ ์ด๊ธฐ ๋๊ธฐํ ํ๋ก์ธ์ค ์์ ์ฌ์ฉํ๋ oplog ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ๋์ ๋ฉค๋ฒ์ local
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ด๊ธฐ ๋๊ธฐํ ํ๋ก์ธ์ค ๋ฅผ ์๋ฃํ๋ ๋ฐ ํ์ํ oplog ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ ์ ์๋ ์ถฉ๋ถํ ๊ณต๊ฐ์ด ์๋์ง ํ์ธํฉ๋๋ค.
์ฐธ๊ณ
์ด๊ธฐ ๋๊ธฐํ ์ค์ MongoDB๋ ๋์ ๋ฉค๋ฒ์ oplog๋ฅผ ์๋ผ๋ ๋๋ค. ์ด๋ฌํ oplog ์๋ฆผ์ oplog ๋ฐ์ดํฐ์ ์์กดํ๋ ๋ณ๊ฒฝ ์คํธ๋ฆผ๊ณผ ๊ฐ์ ํ๋ก์ธ์ค์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
initialSyncSourceReadPreference
ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํธํ๋ ์ด๊ธฐ ๋๊ธฐํ ์์ค๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ์ด ๋งค๊ฐ๋ณ์๋ mongod
์(๋ฅผ) ์์ํ ๋๋ง ์ง์ ํ ์ ์์ต๋๋ค.
MongoDB 5.2๋ถํฐ ์ด๊ธฐ ๋๊ธฐํ๋ ๋ ผ๋ฆฌ์ ๋๊ธฐํ ๋๋ ํ์ผ ๋ณต์ฌ ๊ธฐ๋ฐ ๋๊ธฐํ ์ค ํ๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๋ ผ๋ฆฌ์ ์ด๊ธฐ ๋๊ธฐํ ํ๋ก์ธ์ค
๋ ผ๋ฆฌ์ ์ด๊ธฐ ๋๊ธฐํ๋ฅผ ์ํํ๋ฉด MongoDB๋ ๋ค์์ ์ํํฉ๋๋ค.
๋ก์ปฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต์ ํฉ๋๋ค. ๋ณต์ ํ๋ ค๋ฉด
mongod
๊ฐ ๊ฐ ์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ์ปฌ๋ ์ ์ ์ค์บํ์ฌ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํด๋น ์ปฌ๋ ์ ์ ์์ฒด ๋ณต์ฌ๋ณธ์ ์ฝ์ ํฉ๋๋ค.๊ฐ ์ปฌ๋ ์ ์ ๋ํด ๋ฌธ์๊ฐ ๋ณต์ฌ๋ ๋ ๋ชจ๋ ์ปฌ๋ ์ ์ ์ธ๋ฑ์ค๋ฅผ ๋น๋ํฉ๋๋ค.
๋ฐ์ดํฐ ๋ณต์ฌ ์ค์ ์๋ก ์ถ๊ฐ๋ oplog ๋ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๋์ ๋ ธ๋์ ์ด ๋ฐ์ดํฐ ๋ณต์ฌ ๋จ๊ณ ๋์ ์ด๋ฌํ oplog ๋ ์ฝ๋๋ฅผ ์์๋ก ์ ์ฅํ ์ ์๋ ์ถฉ๋ถํ ๋์คํฌ ๊ณต๊ฐ์ด
local
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋์ง ํ์ธํฉ๋๋ค.๋ฐ์ดํฐ ์ธํธ์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํฉ๋๋ค.
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
์ ๊ฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
primary
๋ก ์ค์ ๋initialSyncSourceReadPreference
์ ๊ฒฝ์ฐ(chaining
์ด ๋นํ์ฑ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ) ํ๋ผ์ด๋จธ๋ฆฌ ํญ๋ชฉ์ ๋๊ธฐํ ๋ก ์ ํํฉ๋๋ค. ํ๋ผ์ด๋จธ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ฑฐ๋ ์ฐ๊ฒฐํ ์ ์๋ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ๋ก๊น ํ๊ณ ์ ๊ธฐ์ ์ผ๋ก ํ๋ผ์ด๋จธ๋ฆฌ ๊ฐ์ฉ์ฑ์ ํ์ธํฉ๋๋ค.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
์ด๋ฅผ ๊ธฐ๋ค๋ฆฐ ํ {0}ํ๋ก์ธ์ค๋ฅผ ๋ค์ ์์ํฉ๋๋ค. ์ธ์ปจ๋๋ฆฌ mongod
๋ ์ค๋ฅ๋ก ์ข
๋ฃ๋๊ธฐ ์ ์ ์ด๊ธฐ ๋๊ธฐํ ์์ค ์ ํ ๊ณผ์ ์ ์ต๋ 10
๋ฒ ๋ค์ ์์ํ ์ ์์ต๋๋ค.
Oplog ์๋์ฐ (oplog window)
Oplog window๋ ์ธ์ปจ๋๋ฆฌ๊ฐ ๋
ผ๋ฆฌ์ ์ด๊ธฐ ๋๊ธฐํ ํ๋ก์ธ์ค์ ์์๊ณผ ๋ ์ฌ์ด์ ๋ฐ์ํ๋ ์ oplog ํญ๋ชฉ์ ๊ฐ์ ธ์ฌ ์ ์์ ๋งํผ ์ถฉ๋ถํ ๊ธธ์ด์ผ ํฉ๋๋ค. ์ฐฝ์ด ์ถฉ๋ถํ ๊ธธ์ง ์์ผ๋ฉด ์ผ๋ถ ํญ๋ชฉ์ด ์ธ์ปจ๋๋ฆฌ๊ฐ ์ ์ฉํ๊ธฐ ์ ์ oplog
์์ ๋จ์ด์ง ์ํ์ด ์์ต๋๋ค.
oplog
๊ฐ ํญ๋ชฉ์ ์๋ก ๊ฐ์ ธ์ฌ ์ ์๋๋ก oplog
์ ํฌ๊ธฐ๋ฅผ ๋๋ํ๊ฒ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ ์ด๊ธฐ ๋๊ธฐํ ๋์ ๋ฐ์ํ ์ ์๋ ๋ณ๊ฒฝ์ฌํญ์ ๋๋นํ๋ ๊ฒ์
๋๋ค.
์์ธํ ๋ด์ฉ์ Oplog ํฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ณต์
์ธ์ปจ๋๋ฆฌ ๋ฉค๋ฒ๋ ์ด๊ธฐ ๋๊ธฐํ ํ ์ง์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ํฉ๋๋ค. ์ธ์ปจ๋๋ฆฌ ๋ฉค๋ฒ๋ ์์ค์์ ๋๊ธฐํ๋ oplog๋ฅผ ๋ณต์ฌํ์ฌ ๋น๋๊ธฐ ํ๋ก์ธ์ค์์ ์ด๋ฌํ ์์ ์ ์ ์ฉํฉ๋๋ค. [1]
์ธ์ปจ๋๋ฆฌ ๋ฉค๋ฒ๋ ๋ค๋ฅธ ๋ฉค๋ฒ์ ํ ์๊ฐ ๋ฐ ๋ณต์ ์ํ์ ๋ณํ์ ๋ฐ๋ผ ํ์์ ๋ฐ๋ผ ์์ค์์ ๋๊ธฐํ๋ฅผ ์๋์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๋๊ธฐํ ์์ค ์ ํ ๊ธฐ์ค์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ณต์ ๋๊ธฐํ ์์ค ์ ํ์ ์ฐธ์กฐํ์ธ์.
[1] | ์ด์ ๋ณต์ ๋ณธ ์ธํธ์ ์ธ์ปจ๋๋ฆฌ ๋ฉค๋ฒ๊ฐ ๋๋ฆฐ ์์
์๊ณ๊ฐ๋ณด๋ค ์ค๋ ๊ฑธ๋ฆฌ๋ oplog ํญ๋ชฉ์ ๊ธฐ๋กํฉ๋๋ค. ์ด๋ฌํ ๋๋ฆฐ oplog ๋ฉ์์ง์ ํน์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
|
์คํธ๋ฆฌ๋ฐ ๋ณต์
์์ค๋ก๋ถํฐ์ ๋๊ธฐํ๋ oplog ํญ๋ชฉ์ ์ฐ์ ์คํธ๋ฆผ์ ๋๊ธฐํ ์ธ์ปจ๋๋ฆฌ ํญ๋ชฉ์ผ๋ก ๋ณด๋ ๋๋ค. ์คํธ๋ฆฌ๋ฐ ๋ณต์ ๋ ๋ถํ๊ฐ ๋๊ณ ๋๊ธฐ ์๊ฐ์ด ๊ธด ๋คํธ์ํฌ์์ ๋ณต์ ์ง์ฐ ์๊ฐ์ ์ํํฉ๋๋ค. ๋ํ ๋ค์์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ณด์กฐ ๋ฐ์ดํฐ์์ ์ฝ์ ๋ฐ์ดํฐ์ ๋ถ์คํจ์ ๊ฐ์.
ํ๋ผ์ด๋จธ๋ฆฌ ํ์ผ์ค๋ฒ๋ก ์ธํด w: 1 ์ค์ ์ผ๋ก ์ฐ๊ธฐ ์์ ์ด ์์ค๋ ์ํ์ด ์ค์ด๋ญ๋๋ค.
w: "majority"
๋ฐ w: >1(์ฆ, ๋ณต์ ๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํ๋ ๋ชจ๋ ์ฐ๊ธฐ ๊ณ ๋ ค)์ ์ฌ์ฉํ ์ฐ๊ธฐ ์์ ์ ์ง์ฐ ์๊ฐ์ ์ค์ ๋๋ค.
์คํธ๋ฆฌ๋ฐ ๋ณต์ ๋ฅผ ๋นํ์ฑํํ๊ณ ์ด์ ๋ณต์ ๋์์ ์ฌ์ฉํ๋ ค๋ฉด oplogFetcherUsesExhaust
์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์์ค์์ ๋๊ธฐํ์ ๋ฆฌ์์ค ์ ์ฝ์ด ์๊ฑฐ๋ ๋ณต์ ๋ฅผ ์ํ MongoDB์ ๋คํธ์ํฌ ๋์ญํญ ์ฌ์ฉ์ ์ ํํ๋ ค๋ ๊ฒฝ์ฐ์๋ง
oplogFetcherUsesExhaust
๋งค๊ฐ ๋ณ์๋ฅผ
false
๋ก ์ค์ ํ์ธ์.
๋ฉํฐ์ค๋ ๋ ๋ณต์
MongoDB๋ ๋์์ฑ์ ํฅ์์ํค๊ธฐ ์ํด ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ธฐ ์์ ์ ๋ฐฐ์น๋ก ์ ์ฉํฉ๋๋ค. MongoDB๋ ๋ฌธ์ ID(WiredTiger)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์น๋ฅผ ๊ทธ๋ฃนํํ๊ณ , ๋ค๋ฅธ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์์ ๊ทธ๋ฃน์ ๋์์ ์ ์ฉํฉ๋๋ค. MongoDB๋ ํญ์ ํน์ ๋ฌธ์์ ๋ํ ์ฐ๊ธฐ ์์ ์ ์๋ ์ฐ๊ธฐ ์์๋๋ก ์ ์ฉํฉ๋๋ค.
์ฝ๊ธฐ ์์
์ด ์ธ์ปจ๋๋ฆฌ๋ฅผ ๋์์ผ๋ก ํ๊ณ "local"
๋๋ "majority"
์ ์ฝ๊ธฐ ๊ณ ๋ ค ์์ค์ผ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ, ๋ณต์ ๋ฐฐ์น๊ฐ ์ ์ฉ๋๋ ์ธ์ปจ๋๋ฆฌ์ ์ฝ๊ธฐ๊ฐ ์ํ๋ ๋ ๋ฐ์ดํฐ์ WiredTiger ์ค๋
์ท์์ ์ฝ์ต๋๋ค.
์ค๋ ์ท์์ ์ฝ๊ธฐ๋ ๋ฐ์ดํฐ์ ์ผ๊ด๋ ๋ทฐ๋ฅผ ๋ณด์ฅํ๊ณ , ์ ๊ธ ์์ด ์งํ ์ค์ธ ๋ณต์ ์ ๋์์ ์ฝ๊ธฐ๋ฅผ ์ํํ ์ ์๋๋ก ํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก, ์ด๋ฌํ ์ฝ๊ธฐ ๊ณ ๋ ค ์์ค์ด ํ์ํ ๋ณด์กฐ ์ฝ๊ธฐ๋ ๋ ์ด์ ๋ณต์ ๋ฐฐ์น๊ฐ ์ ์ฉ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆด ํ์ ์์ด ์์ ๋๋ ๋๋ก ์ฒ๋ฆฌ๋ ์ ์์ต๋๋ค.
ํ๋ฆ ์ ์ด
MongoDB 4.2๋ถํฐ ๊ด๋ฆฌ์๋ majority
committed
์ง์ฐ์ ๊ตฌ์ฑ ๊ฐ๋ฅํ ์ต๋๊ฐ flowControlTargetLagSeconds
์ดํ๋ก ์ ์งํ๋ ๊ฒ์ ๋ชฉํ๋ก ๊ธฐ๋ณธ์ด ์ฐ๊ธฐ๋ฅผ ์ ์ฉํ๋ ์๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ฆ ์ ์ด๋ enabled
์
๋๋ค.
์ฐธ๊ณ
ํ๋ฆ ์ ์ด๊ฐ ์๋ํ๋ ค๋ฉด ๋ณต์ ๋ณธ ์ธํธ/์ค๋ฉ๋ ํด๋ฌ์คํฐ์ 4.2
์ featureCompatibilityVersion(fCV) ๊ณผ
majority enabled
์ ์ฝ๊ธฐ ์ฐ๋ ค ์ฌํญ์ด ์์ด์ผ ํฉ๋๋ค. ์ฆ, fCV๊ฐ
4.2
๊ฐ ์๋๊ฑฐ๋ ์ฝ๊ธฐ ๋ฌธ์ ๊ณผ๋ฐ์๊ฐ ๋นํ์ฑํ๋ ๊ฒฝ์ฐ ํ์ฑํ๋ ํ๋ฆ ์ ์ด๋ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ ํ๋ฆ ์ ์ด๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ณต์ ๋๊ธฐํ ์์ค ์ ํ
๋ณต์ ๋๊ธฐํ ์์ค ์ ํ์ ๋ณต์ ๋ณธ ์ธํธ 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
๊ฐ์ ์ฌ์ฉํฉ๋๋ค.
์ด๊ธฐ ๋๊ธฐํ ์์ค ์ ํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด๊ธฐ ๋๊ธฐํ ์์ค ์ ํ์ ์ฐธ์กฐํ์ธ์.