์ฝ๊ธฐ ๊ฒฉ๋ฆฌ, ์ผ๊ด์ฑ ๋ฐ ์ต์ ์ฑ
์ด ํ์ด์ง์ ๋ด์ฉ
๊ฒฉ๋ฆฌ ๋ณด์ฅ
์ปค๋ฐ๋์ง ์์ ์ฝ๊ธฐ
์ฝ๊ธฐ ๊ณ ๋ ค์ ๋ฐ๋ผ ํด๋ผ์ด์ธํธ๋ ์ฐ๊ธฐ๊ฐ ์ง์ํ์ด ๋๊ธฐ ์ ์ ์ฐ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ฐ๊ธฐ์ ์ฐ๊ธฐ ๊ณ ๋ ค์ ๊ด๊ณ์์ด
"local"
๋๋"available"
์ฝ๊ธฐ ๊ณ ๋ ค๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ํด๋ผ์ด์ธํธ๋ ์ฐ๊ธฐ ์์ ์ด ์คํ ํด๋ผ์ด์ธํธ์ ์น์ธ๋๊ธฐ ์ ์ ์ฐ๊ธฐ ์์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์์ต๋๋ค."local"
๋๋"available"
์ฝ๊ธฐ ๊ณ ๋ ค๋ฅผ ์ฌ์ฉํ๋ ํด๋ผ์ด์ธํธ๋ ๋ณต์ ๋ณธ ์ธํธ ์ฅ์ ์กฐ์น ์ค์ ๋์ค์ ๋กค๋ฐฑ๋ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์์ต๋๋ค.
๋ค์ค ๋ฌธ์ ํธ๋์ญ์ ํธ๋์ญ์ ์ด ์ปค๋ฐ๋๋ฉด ํธ๋์ญ์ ์์ ์ด๋ฃจ์ด์ง ๋ชจ๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฅ๋๊ณ ํธ๋์ญ์ ์ธ๋ถ์์ ๋ณผ ์ ์์ต๋๋ค. ์ฆ, ํธ๋์ญ์ ์ ๋ค๋ฅธ ํธ๋์ญ์ ์ ๋กค๋ฐฑํ๋ ๋์ ์ผ๋ถ ๋ณ๊ฒฝ ์ฌํญ์ ์ปค๋ฐํ์ง ์์ต๋๋ค.
ํธ๋์ญ์ ์ด ์ปค๋ฐ๋ ๋๊น์ง ํธ๋์ญ์ ์์ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ ํธ๋์ญ์ ์ธ๋ถ์ ํ์๋์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ํธ๋์ญ์
์ด ์ฌ๋ฌ ์ค๋์ ์ฐ๊ธฐ๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ, ๋ชจ๋ ์ธ๋ถ ์ฝ๊ธฐ ์์
์ด ์ปค๋ฐ๋ ํธ๋์ญ์
์ ๊ฒฐ๊ณผ๊ฐ ์ค๋ ์ ์ฒด์ ํ์๋ ๋๊น์ง ๊ธฐ๋ค๋ฆด ํ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํธ๋์ญ์
์ด ์ปค๋ฐ๋๊ณ ์ฐ๊ธฐ 1์ด ์ค๋ A์ ํ์๋์ง๋ง ์ฐ๊ธฐ 2๊ฐ ์ค๋ B์ ์์ง ํ์๋์ง ์๋ ๊ฒฝ์ฐ, ์ฝ๊ธฐ ๊ณ ๋ ค "local"
์ ์ธ๋ถ ์ฝ๊ธฐ๋ ์ฐ๊ธฐ 2๋ฅผ ๋ณด์ง ์๊ณ ์ฐ๊ธฐ 1์ ๊ฒฐ๊ณผ๋ฅผ ์ฝ์ ์ ์์ต๋๋ค.
์ปค๋ฐ๋์ง ์์ ์ฝ๊ธฐ๋ ๊ธฐ๋ณธ ๊ฒฉ๋ฆฌ ์์ค์ด๋ฉฐ mongod
๋
๋ฆฝํ ์ธ์คํด์ค์ ๋ณต์ ๋ณธ ์ธํธ ๋ฐ ์ค๋ ํด๋ฌ์คํฐ์ ์ ์ฉ๋ฉ๋๋ค.
์ปค๋ฐ๋์ง ์์ ๋จ์ผ ๋ฌธ์ ์์์ฑ ์ฝ๊ธฐ
์ฐ๊ธฐ ์์ ์ ๋จ์ผ ๋ฌธ์์ ๋ํด ์์์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค. ์ด๋ ์ฐ๊ธฐ ์์ ์ด ๋ฌธ์์ ์ฌ๋ฌ ํ๋๋ฅผ ์ ๋ฐ์ดํธํ๋๋ผ๋ ์ฝ๊ธฐ ์์ ์์๋ ์ผ๋ถ ํ๋๋ง ์ ๋ฐ์ดํธ๋ ์ํ์ ๋ฌธ์๋ฅผ ์ ๋ ๋ณผ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฌ๋ ํด๋ผ์ด์ธํธ๋ ๋ถ๋ถ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋ ๋ฌธ์๋ฅผ ๋ณผ ์ ์์ง๋ง, ์ปค๋ฐ๋์ง ์์ ์ฝ๊ธฐ๋ ๋์ ์ฝ๊ธฐ ์์ ์์ ๋ณ๊ฒฝ ์ฌํญ์ด ์ง์์ ์ผ๋ก ์ ์ฉ๋๊ธฐ ์ ์ ์ ๋ฐ์ดํธ๋ ๋ฌธ์๋ฅผ ๋ณผ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๋
๋ฆฝํ mongod
์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋จ์ผ ๋ฌธ์์ ๋ํ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์์
์ธํธ๋ฅผ ์ง๋ ฌํํ ์ ์์ต๋๋ค. ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋จ์ผ ๋ฌธ์์ ๋ํ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์์
์ธํธ๋ ๋กค๋ฐฑ์ด ์๋ ๊ฒฝ์ฐ์๋ง ์ง๋ ฌํํ ์ ์์ต๋๋ค.
์ปค๋ฐ๋์ง ์์ ๋ฌธ์ ์ฝ๊ธฐ ๋ฐ ์ฌ๋ฌ ๋ฌธ์ ์ฐ๊ธฐ
๋จ์ผ ์ฐ๊ธฐ ์์
(์: db.collection.updateMany()
)์ด ์ฌ๋ฌ ๋ฌธ์๋ฅผ ์์ ํ๋ ๊ฒฝ์ฐ ๊ฐ ๋ฌธ์์ ์์ ์ ์์์ ์ด์ง๋ง ์ ์ฒด ์์
์ ์์์ ์ด์ง ์์ต๋๋ค.
๋จ์ผ ์ฐ๊ธฐ ์์ ์ด๋ ๋ค์ค ์ฐ๊ธฐ ์์ ์ด๋ ๋ค์ค ๋ฌธ์ ์ฐ๊ธฐ ์์ ์ ์ํํ ๋ ๋ค๋ฅธ ์์ ๊ณผ ๊ฒน์น ์ ์์ต๋๋ค.
์ฌ๋ฌ ๋ฌธ์(๋จ์ผ ๋๋ ์ฌ๋ฌ ์ปฌ๋ ์ )์ ๋ํ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ์ ์์์ฑ์ด ํ์ํ ์ํฉ์ ๊ฒฝ์ฐ, ๋ณต์ ๋ณธ ์ธํธ ๋ฐ ์ค๋ ํด๋ฌ์คํฐ์์์ ํธ๋์ญ์ ์ ํฌํจํ ๋ถ์ฐ ํธ๋์ญ์ ์ ์ง์ํฉ๋๋ค.
์์ธํ ๋ด์ฉ์ ๊ฑฐ๋๋ฅผ์ฐธ์กฐํ์ธ์.
์ค์
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ถ์ฐ ํธ๋์ญ์ ์ ๋จ์ผ ๋ฌธ์ ์ฐ๊ธฐ์ ๋นํด ๋ ํฐ ์ฑ๋ฅ ๋น์ฉ์ด ๋ฐ์ํ๋ฏ๋ก ๋ถ์ฐ ํธ๋์ญ์ ์ ๊ฐ์ฉ์ฑ์ด ํจ๊ณผ์ ์ธ ์คํค๋ง ์ค๊ณ๋ฅผ ๋์ฒดํ ์๋ ์์ต๋๋ค. ๋๋ถ๋ถ์ ์๋๋ฆฌ์ค์์ ๋น์ ๊ทํ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ (๋ด์ฅ๋ ๋ฌธ์ ๋ฐ ๋ฐฐ์ด) ์ ๊ณ์ํด์ ๋ฐ์ดํฐ ๋ฐ ์ฌ์ฉ ์ฌ๋ก์ ์ต์ ์ผ ๊ฒ์ ๋๋ค. ์ฆ, ๋๋ถ๋ถ์ ์๋๋ฆฌ์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ๊ฒ ๋ชจ๋ธ๋งํ๋ฉด ๋ถ์ฐ ํธ๋์ญ์ ์ ํ์์ฑ์ด ์ต์ํ๋ฉ๋๋ค.
์ถ๊ฐ ํธ๋์ญ์ ์ฌ์ฉ ๊ณ ๋ ค ์ฌํญ(์: ๋ฐํ์ ์ ํ ๋ฐ oplog ํฌ๊ธฐ ์ ํ)์ ํ๋ก๋์ ๊ณ ๋ ค์ฌํญ์ ์ฐธ์กฐํ์ธ์.
๋ค์ค ๋ฌธ์ ์ฐ๊ธฐ ์์ ์ ๋ถ๋ฆฌํ์ง ์์ผ๋ฉด MongoDB๋ ๋ค์๊ณผ ๊ฐ์ ๋์์ ๋ณด์ ๋๋ค.
Non-point ์ฝ๊ธฐ ์์ . ์ฝ๊ธฐ ์์ ์ด ์๊ฐ t 1์ ์์๋์ด ๋ฌธ์ ์ฝ๊ธฐ๋ฅผ ์์ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ฐ๊ธฐ ์์ ์ ๋์ค์ ์ด๋ ์์ ( t 2)์ ๋ฌธ์ ์ค ํ๋๋ฅผ ์ ๋ฐ์ดํธํ๋ฉด, ์ฝ๊ธฐ ์์ ์ ์ ๋ฐ์ดํธ๋ ๋ฒ์ ์ ๋ฌธ์๋ง ๋ณผ ์ ์์ผ๋ฏ๋ก ๋ฐ์ดํฐ์ ํน์ ์์ ์ค๋ ์ท์ ๋ณผ ์ ์์ต๋๋ค.
์ง๋ ฌํํ ์ ์๋ ์์ ์ ๋๋ค. ์ฝ๊ธฐ ์์ ์ด ์๊ฐ t 1์ ๋ฌธ์ d 1์ ์ฝ๊ณ , ์ฐ๊ธฐ ์์ ์ด ๋์ค์ ์๊ฐ t 3์ ๋ฌธ์ d 1์ ์ ๋ฐ์ดํธํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๋ก ์ธํด ์ฝ๊ธฐ-์ฐ๊ธฐ ์ข ์์ฑ์ด ๋ฐ์ํฉ๋๋ค. ์ฆ, ์์ ์ ์ง๋ ฌํํ๋ ค๋ ๊ฒฝ์ฐ ์ฝ๊ธฐ ์์ ์ด ์ฐ๊ธฐ ์์ ๋ณด๋ค ์ฐ์ ํด์ผ ํฉ๋๋ค. ๋ฐ๋ฉด ์ฐ๊ธฐ ์์ ์ด ์๊ฐ t 2์ ๋ฌธ์ d 2๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ์ฝ๊ธฐ ์์ ์ด ๋์ค์ ์๊ฐ t 4์ ๋ฌธ์ d 2๋ฅผ ์ฝ๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฐ๊ธฐ-์ฝ๊ธฐ ์ข ์์ฑ์ด ๋์ ๋์ด ์ง๋ ฌํ ๊ฐ๋ฅํ ์ค์ผ์ค์์ ์ฝ๊ธฐ ์์ ์ด ์ฐ๊ธฐ ์์ ์ดํ์ ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค. ์ง๋ ฌํ ๊ฐ๋ฅ์ฑ์ ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ์ข ์์ฑ ์ฃผ๊ธฐ๊ฐ ์์ต๋๋ค.
์ฝ๊ธฐ ์์ ์ค์ ์ ๋ฐ์ดํธ๋ ์ผ์นํ๋ ๋ฌธ์๊ฐ ๋๋ฝ๋ ์ ์์ต๋๋ค.
์ปค์ ์ค๋ ์ท
MongoDB ์ปค์๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋์ผํ ๋ฌธ์๋ฅผ ๋ ๋ฒ ์ด์ ๋ฐํํ ์ ์์ต๋๋ค. ์ปค์๊ฐ ๋ฌธ์๋ฅผ ๋ฐํํ ๋ ๋ค๋ฅธ ์์ ์ด ์ฟผ๋ฆฌ์ ๋ผ์ด๋ค ์ ์์ต๋๋ค. ์ด๋ฌํ ์์ ์ค ํ๋๊ฐ ์ฟผ๋ฆฌ์์ ์ฌ์ฉํ๋ ์ธ๋ฑ์ค์ ์ธ๋ฑ์ค ํ๋๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์ปค์๊ฐ ๋์ผํ ๋ฌธ์๋ฅผ ๋ ๋ฒ ์ด์ ๋ฐํํ ์ ์์ต๋๋ค.
๊ณ ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ค๋ณต๋ ๊ฐ์ ๋ฐํํ ์ ์์ต๋๋ค. ๊ณ ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ์ปค์๊ฐ ๋์ผํ ๊ณ ์ ๊ฐ์ ๊ณต์ ํ๋ ๋ฌธ์์ ์ญ์ ๋ฐ ์ฝ์ ๊ณผ ๊ฒน์น๋ ๊ฒฝ์ฐ, ์ปค์๋ ์๋ก ๋ค๋ฅธ ๋ฌธ์์์ ๋์ผํ ๊ณ ์ ๊ฐ์ ๋ ๋ฒ ๋ฐํํ ์ ์์ต๋๋ค.
์ฝ๊ธฐ ๊ฒฉ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฝ๊ธฐ ๊ณ ๋ ค ์ฌํญ "snapshot"
์ ์ฐธ์กฐํ์ญ์์ค.
๋จ์กฐ์ ์ฐ๊ธฐ
๋ชฝ๊ณ DB๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋
๋ฆฝํ mongod
์ธ์คํด์ค ๋ฐ ๋ณต์ ๋ณธ ์ธํธ์ ๋ํด ๋จ์กฐ๋ก์ด ์ฐ๊ธฐ ๋ณด์ฅ์ ์ ๊ณตํฉ๋๋ค.
๋จ์กฐ๋ก์ด ์ฐ๊ธฐ ๋ฐ ์ค๋ ํด๋ฌ์คํฐ์ ๋ํด์๋ ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ์ฐธ์กฐํ์ธ์.
์ค์๊ฐ ์ฃผ๋ฌธ ์ฒ๋ฆฌ
ํ๋ผ์ด๋จธ๋ฆฌ์์ "linearizable"
์ฝ๊ธฐ ๊ณ ๋ ค์ "majority"
์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ์ฌ์ฉํ๋ฉด,์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์์ ๋จ์ผ ๋ฌธ์์ ๋ํด ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์์
์ ์ํํ ์ ์์ต๋๋ค. ์ด๋ ๋ง์น ํ ์ค๋ ๋๊ฐ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ ์์
์ ์ํํ๋ ๊ฒ์ฒ๋ผ ์๋ํฉ๋๋ค. ์ด๋ ๊ฒ ์ํ๋ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์์
์ ์๊ฐ์ ์ผ๋ก ์ผ๋ จ์ ์์๋๋ก ์งํ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค, ์ฆ ์ด๋ฌํ ์์
๋ค์ '์ ํํ ๊ฐ๋ฅํ(Linearizable)' ๊ฒ์ผ๋ก ์ฌ๊ฒจ์ง๋๋ค.
ํ
๋ค์๋ ์ฐธ์กฐํ์ธ์.
์ธ๊ณผ ๊ด๊ณ ์ผ๊ด์ฑ
์์ ์ด ๋ ผ๋ฆฌ์ ์ผ๋ก ์ด์ ์์ ์ ์ข ์๋๋ ๊ฒฝ์ฐ ์์ ๊ฐ์ ์ธ๊ณผ ๊ด๊ณ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ง์ ๋ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ญ์ ํ๋ ์ฐ๊ธฐ ์์ ๊ณผ ์ญ์ ์์ ์ ํ์ธํ๋ ํ์ ์ฝ๊ธฐ ์์ ์ ์ธ๊ณผ ๊ด๊ณ๊ฐ ์์ต๋๋ค.
MongoDB๋ ์ธ๊ณผ ๊ด๊ณ๊ฐ ์ผ์นํ๋ ์ธ์ ์ ํตํด ์ธ๊ณผ ๊ด๊ณ๋ฅผ ์กด์คํ๋ ์์๋ก ์ธ๊ณผ๊ด๊ณ ์ฐ์ฐ์ ์คํํ๊ณ ํด๋ผ์ด์ธํธ๋ ์ธ๊ณผ ๊ด๊ณ์ ์ผ์นํ๋ ๊ฒฐ๊ณผ๋ฅผ ๊ด์ฐฐํฉ๋๋ค.
ํด๋ผ์ด์ธํธ ์ธ์ ๋ฐ ์ธ๊ณผ์ ์ผ๊ด์ฑ ๋ณด์ฅ
์ธ๊ณผ์ ์ผ๊ด์ฑ์ ์ ๊ณตํ๊ธฐ ์ํด MongoDB 3.6์ ํด๋ผ์ด์ธํธ ์ธ์
์์ ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ์ง์ํฉ๋๋ค. ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ์ธ์
์ "majority"
์ฝ๊ธฐ ๊ณ ๋ ค๋ฅผ ๊ฐ์ง ์ฝ๊ธฐ ์์
๊ณผ "majority"
์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ๊ฐ์ง ์ฐ๊ธฐ ์์
์ ๊ด๋ จ ์ํ์ค๊ฐ ์์์ ๋ฐ๋ผ ๋ฐ์๋๋ ์ธ๊ณผ ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์์์ ๋ํ๋
๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ ํด๋ผ์ด์ธํธ ์ธ์
์์ ํ ๋ฒ์ ํ๋์ ์ค๋ ๋๋ง ์ด๋ฌํ ์ฐ์ฐ์ ์คํํ๋๋ก ํด์ผ ํฉ๋๋ค.
์ธ๊ณผ ๊ด๊ณ๊ฐ ์๋ ์์ ์ ๊ฒฝ์ฐ:
ํด๋ผ์ด์ธํธ๊ฐ ํด๋ผ์ด์ธํธ ์ธ์ ์ ์์ํฉ๋๋ค.
์ค์
ํด๋ผ์ด์ธํธ ์ธ์ ์ ์ธ๊ณผ ๊ด๊ณ์ ์ผ๊ด์ฑ๋ง ๋ณด์ฅํฉ๋๋ค:
"majority"
๋ฅผ ์ฌ์ฉํ ์ฝ๊ธฐ ์์ ์ ๋๋ถ๋ถ์ ๋ณต์ ๋ณธ ์ธํธ ๋ ธ๋์ ์ํด ์น์ธ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ฉฐ, ์ง์์ฑ ์๋ ๋ฐ์ดํฐ์ ๋๋ค."majority"
์ฐ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฐ๊ธฐ ์์ , ์ฆ ๋ณต์ ๋ณธ ์ธํธ์ ํฌํ ๋ ธ๋ ๊ณผ๋ฐ์์๊ฒ ์์ ์ด ์ ์ฉ๋์๋ค๋ ์น์ธ์ ์์ฒญํ๋ ์ฐ๊ธฐ ์์ ์ ๋๋ค.
์ธ๊ณผ์ ์ผ๊ด์ฑ ๋ฐ ๋ค์ํ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๋ฌธ์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ธ๊ณผ์ ์ผ๊ด์ฑ ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ์ฐธ์กฐํ์ธ์.
ํด๋ผ์ด์ธํธ๊ฐ
"majority"
์ฝ๊ธฐ ๊ณ ๋ ค๋ฅผ ๊ฐ์ง ์ฝ๊ธฐ ์์ ๊ณผ"majority"
์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ๊ฐ์ง ์ฐ๊ธฐ ์์ ์ ์ํ์ค๋ฅผ ์คํํ ๋ ํด๋ผ์ด์ธํธ๋ ๊ฐ ์์ ์ ์ธ์ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค."majority"
์ฝ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ๊ฐ ์ฝ๊ธฐ ์์ ๊ณผ ์ธ์ ๊ณผ ์ฐ๊ฒฐ๋"majority"
์ฐ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฐ๊ธฐ ์์ ์ ๋ํด MongoDB๋ ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์์ ์๊ฐ๊ณผ ํด๋ฌ์คํฐ ์๊ฐ์ ๋ฐํํฉ๋๋ค. ํด๋ผ์ด์ธํธ ์ธ์ ์ ์์ ์๊ฐ๊ณผ ํด๋ฌ์คํฐ ์๊ฐ์ ์ถ์ ํฉ๋๋ค.์ฐธ๊ณ
MongoDB๋ ์น์ธ๋์ง ์์ (
w: 0
)์ฐ๊ธฐ ์์ ์ ๋ํ ์์ ์๊ฐ๊ณผ ํด๋ฌ์คํฐ ์๊ฐ์ ๋ฐํํ์ง ์์ต๋๋ค. ์น์ธ๋์ง ์์ ์ฐ๊ธฐ๋ ์ธ๊ณผ ๊ด๊ณ๋ฅผ ์๋ฏธํ์ง ์์ต๋๋ค.MongoDB๋ ํด๋ผ์ด์ธํธ ์ธ์ ์์ ์ฝ๊ธฐ ์์ ๋ฐ ์น์ธ๋ ์ฐ๊ธฐ ์์ ์ ๋ํ ์์ ์๊ฐ ๋ฐ ํด๋ฌ์คํฐ ์๊ฐ์ ๋ฐํํ์ง๋ง,
"majority"
์ฝ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฝ๊ธฐ ์์ ๊ณผ"majority"
์ฐ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฐ๊ธฐ ์์ ๋ง ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ธ๊ณผ์ ์ผ๊ด์ฑ ๋ฐ ์ฝ๊ธฐ์ ์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ์ฐธ์กฐํ์ธ์.์ฐ๊ฒฐ๋ ํด๋ผ์ด์ธํธ ์ธ์ ์ ์ด ๋ ๊ฐ์ ์๊ฐ ํ๋๋ฅผ ์ถ์ ํฉ๋๋ค.
์ฐธ๊ณ
์์ ์ ์ฌ๋ฌ ์ธ์ ์์ ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ์ ์์ต๋๋ค. MongoDB ๋๋ผ์ด๋ฒ์
mongosh
๋ ํด๋ผ์ด์ธํธ ์ธ์ ์ ์์ ์๊ฐ๊ณผ ํด๋ฌ์คํฐ ์๊ฐ์ ์๋น๊ธฐ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ๋ ํ ํด๋ผ์ด์ธํธ ์ธ์ ์ ํด๋ฌ์คํฐ ์๊ฐ๊ณผ ์์ ์๊ฐ์ ๋ค๋ฅธ ํด๋ผ์ด์ธํธ ์ธ์ ์ ์์ ๊ณผ ์ผ์นํ๋๋ก ์๋น๊ธธ ์ ์์ต๋๋ค.
์ธ๊ณผ์ ์ผ๊ด์ฑ ๋ณด์ฅ
๋ค์ ํ์๋ "majority"
์ฝ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฝ๊ธฐ ์์
๋ฐ "majority"
์ฐ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฐ๊ธฐ ์์
์ ๋ํด ์ธ๊ณผ ๊ด๊ณ๊ฐ ์ผ๊ด์ ์ธ ์ธ์
์์ ์ ๊ณตํ๋ ์ธ๊ณผ์ ์ผ๊ด์ฑ ๋ณด์ฅ์ด ๋๋ค.๋์ด๋์ด ์์ต๋๋ค.
๋ณด์ฅ | ์ค๋ช
|
---|---|
์ฐ๊ธฐ ์ฝ๊ธฐ | ์ฝ๊ธฐ ์์
์ ๊ทธ ์์ ์๋ ์ฐ๊ธฐ ์์
์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํฉ๋๋ค. |
๋จ์กฐ์ ์ฝ๊ธฐ | ์ฝ๊ธฐ ์์ ์ ์ด์ ์ฝ๊ธฐ ์์ ๋ณด๋ค ์ด์ ๋ฐ์ดํฐ ์ํ์ ํด๋นํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ์ง ์์ต๋๋ค. ์ธ์ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์๋ก ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ฝ๊ธฐ 2๋ ์ฐ๊ธฐ 1์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค. |
๋จ์กฐ๋ก์ด ์ฐ๊ธฐ | ๋ค๋ฅธ ์ฐ๊ธฐ๋ณด๋ค ๋จผ์ ์ํ๋์ด์ผ ํ๋ ์ฐ๊ธฐ ์์ ์ ๋ค๋ฅธ ์ฐ๊ธฐ๋ณด๋ค ๋จผ์ ์คํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ธ์ ์์ ์ฐ๊ธฐ 1์ด ์ฐ๊ธฐ 2๋ณด๋ค ์ ํ๋์ด์ผ ํ๋ ๊ฒฝ์ฐ, ์ฐ๊ธฐ 2 ์์ ์ ๋ฐ์ดํฐ ์ํ๋ ์ฐ๊ธฐ 1 ์ดํ์ ๋ฐ์ดํฐ ์ํ๋ฅผ ๋ฐ์ํด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ์ฐ๊ธฐ๋ ์ฐ๊ธฐ 1๊ณผ ์ฐ๊ธฐ 2 ์ฌ์ด์ ๋ผ์ด๋ค ์ ์์ง๋ง, ์ฐ๊ธฐ 2๋ ์ฐ๊ธฐ 1๋ณด๋ค ๋จผ์ ๋ฐ์ํ ์ ์์ต๋๋ค. |
์ฝ๊ธฐ ํ ์ฐ๊ธฐ | ์ฝ๊ธฐ ์์
ํ์ ๋ฐ์ํด์ผ ํ๋ ์ฐ๊ธฐ ์์
์ ํด๋น ์ฝ๊ธฐ ์์
ํ์ ์คํ๋ฉ๋๋ค. ์ฆ, ์ฐ๊ธฐ ์์ ์ ๋ฐ์ดํฐ ์ํ๋ ์ด์ ์ฝ๊ธฐ ์์
์ ๋ฐ์ดํฐ ์ํ๋ฅผ ๋ฐ์ํด์ผ ํฉ๋๋ค |
์ฝ๊ธฐ ์ค์
์ด๋ฌํ ๋ณด์ฅ์ฌํญ์ MongoDB ๋ฐฐํฌ์ ๋ชจ๋ ๋
ธ๋์ ๋ํด ์ ์ฉ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ์ธ์
์์ "majority"
์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ๊ฐ์ง ์ฐ๊ธฐ ์์
์ ์คํํ ํ ์ธ์ปจ๋๋ฆฌ์์ ์ฝ๊ธฐ๋ฅผ ์ํํ๋ ์ฝ๊ธฐ ์์
( (์ฆ, ์ฝ๊ธฐ ์ค์ secondary
)์ "majority"
์ฝ๊ธฐ ๊ณ ๋ ค์ ํจ๊ป ์คํํ๋ฉด, ์ฝ๊ธฐ ์์
์ ์ฐ๊ธฐ ์์
ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ฐ์ํฉ๋๋ค.
๊ฒฉ๋ฆฌ
์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ์ธ์ ๋ด์ ์์ ์ ์ธ์ ์ธ๋ถ์ ์์ ๊ณผ ๊ฒฉ๋ฆฌ๋์ง ์์ต๋๋ค. ๋์ ์ฐ๊ธฐ ์์ ์ด ์ธ์ ์ ์ฐ๊ธฐ์ ์ฝ๊ธฐ ์์ ์ฌ์ด์ ๋ฐ์ํ๋ ๊ฒฝ์ฐ, ์ธ์ ์ ์ฝ๊ธฐ ์์ ์ ์ธ์ ์ ์ฐ๊ธฐ ์์ ์ดํ์ ๋ฐ์ํ ์ฐ๊ธฐ ์์ ์ ๋ฐ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.
MongoDB ๋๋ผ์ด๋ฒ
ํ
์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋ผ์ด์ธํธ ์ธ์ ์์ ํ ๋ฒ์ ํ๋์ ์ค๋ ๋๋ง ์ด๋ฌํ ์ฐ์ฐ์ ์คํํ๋๋ก ํด์ผ ํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๋ MongoDB 3.6 ์ด์์ฉ์ผ๋ก ์ ๋ฐ์ดํธ๋ MongoDB ๋๋ผ์ด๋ฒ๊ฐ ํ์ํฉ๋๋ค.
Java 3.6+ Python 3.6+ C 1.9 ์ด์ Go 1.8+ | C# 2.5+ ๋ ธ๋ 3.0+ Ruby 2.5+ Rust 2.1+ Swift 1.2+ | ํ(Perl) 2.0+ PHPC 1.4+ Scala 2.2+ C++ 3.6.6+ |
์์
์ค์
์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ์ธ์
์ "majority"
์ฝ๊ธฐ ๊ณ ๋ ค์ "majority"
์ฐ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฐ๊ธฐ์ ๋ํด์๋ง ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ ์ ์์ต๋๋ค.
๋ค์ํ ํญ๋ชฉ์ ๋ํ ํ์ฌ ๋ฐ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๋ ์ปฌ๋ ์
items
์ ์๊ฐํด ๋ณด๊ฒ ์ต๋๋ค. ๊ธฐ๋ก ๋ฐ์ดํฐ์๋ง null์ด ์๋ end
๋ ์ง๊ฐ ์์ต๋๋ค. ํญ๋ชฉ์ sku
๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ์ด์ sku
๊ฐ์ด ์๋ ๋ฌธ์๋ฅผ end
๋ ์ง๋ก ์
๋ฐ์ดํธํ ํ, ์ ๋ฌธ์๋ฅผ ํ์ฌ sku
๊ฐ์ผ๋ก ์ฝ์
ํด์ผ ํฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ธ๊ณผ ๊ด๊ณ๊ฐ ์ผ์นํ๋ ์ธ์
์ ์ฌ์ฉํ์ฌ ์ฝ์
์ ์ ์
๋ฐ์ดํธ๊ฐ ์ํ๋๋๋ก ํ ์ ์์ต๋๋ค.
์ค๋ฅธ์ชฝ ์์ ์๋ ์ธ์ด ์ ํ ๋๋กญ๋ค์ด ๋ฉ๋ด๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์์ ์ ์ธ์ด๋ฅผ ์ค์ ํ์ธ์.
๋ค๋ฅธ ํด๋ผ์ด์ธํธ๊ฐ ํ์ฌ sku
๊ฐ์ ๋ชจ๋ ์ฝ์ด์ผ ํ๋ ๊ฒฝ์ฐ, ํด๋ฌ์คํฐ ์๊ฐ๊ณผ ์์
์๊ฐ์ ๋ค๋ฅธ ์ธ์
์ ์๊ฐ์ผ๋ก ์๋น๊ฒจ ์ด ํด๋ผ์ด์ธํธ๊ฐ ๋ค๋ฅธ ์ธ์
๊ณผ ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด์ฑ์ ์ ์งํ๊ณ ๋ ๋ฒ์ ์ฐ๊ธฐ ํ์ ์ฝ์ ์ ์๋๋ก ํ ์ ์์ต๋๋ค.
์ ํ ์ฌํญ
์ธ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋น๋ํ๋ ๋ค์ ์์ ์ ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด์ฑ์ด ์์ต๋๋ค.
์์
| ์ฐธ๊ณ ์ฌํญ |
---|---|
latencyStats ์ต์
์ด ์๋ $collStats . | |
์์
์ด ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ํด๋ผ์ด์ธํธ ์ธ์
๊ณผ ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ๋ฐํํฉ๋๋ค. | |
์์
์ด ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ํด๋ผ์ด์ธํธ ์ธ์
๊ณผ ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ๋ฐํํฉ๋๋ค. | |
์์
์ด ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ํด๋ผ์ด์ธํธ ์ธ์
๊ณผ ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ๋ฐํํฉ๋๋ค. | |
์์
์ด ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ํด๋ผ์ด์ธํธ ์ธ์
๊ณผ ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ๋ฐํํฉ๋๋ค. | |