์ธ๊ณผ์ ์ผ๊ด์ฑ ๋ฐ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค
MongoDB์ ์ธ๊ณผ์ ์ผ๊ด์ ์ธ ์ ์ธ ํด๋ผ์ด์ธํธ ์ธ์ ์ ์ฌ์ฉํ๋ฉด ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ (write) ๊ณ ๋ ค์ ๋ค์ํ ์กฐํฉ์ ํตํด ๋ค์ํ ์ธ๊ณผ์ ์ผ๊ด์ฑ ๋ณด์ฅ ์ ์์ต๋๋ค.
๋ค์ ํ์๋ ๋ค์ํ ์กฐํฉ์ด ์ ๊ณตํ๋ ๊ตฌ์ฒด์ ์ธ ๋ณด์ฅ์ด ๋์ด๋์ด ์์ต๋๋ค.
readConcern | ์ฐ๊ธฐ ๊ณ ๋ ค | ์ฐ๊ธฐ ์ฝ๊ธฐ | ๋จ์กฐ์ ์ฝ๊ธฐ | ๋จ์กฐ๋ก์ด ์ฐ๊ธฐ | ์ฝ๊ธฐ ํ ์ฐ๊ธฐ |
---|---|---|---|---|---|
โ
| โ
| โ
| โ
| ||
โ
| โ
| ||||
โ
|
๋ฐ์ดํฐ ๋ด๊ตฌ์ฑ๊ณผ ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ์ํ๋ ๊ฒฝ์ฐ, ํ์์ ๋ณผ ์ ์๋ฏ์ด "majority"
์ฝ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฝ๊ธฐ ์์
๊ณผ "majority"
์ฐ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฐ๊ธฐ ์์
๋ง ๋ค ๊ฐ์ง ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ๋ชจ๋ ๋ณด์ฅํ ์ ์์ต๋๋ค. ์ฆ, ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ํด๋ผ์ด์ธํธ ์ธ์
์ ๋ค์์ ๋ํด์๋ง ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ ์ ์์ต๋๋ค.
"majority"
์ฝ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฝ๊ธฐ ์์ , ์ฆ, ๋๋ถ๋ถ์ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๊ฐ ์น์ธํ๊ณ ์ง์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ ์ฝ๊ธฐ ์์ ์ ๋๋ค."majority"
์ฐ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฐ๊ธฐ ์์ , ๋ค์ ๋งํด, ๋ณต์ ๋ณธ ์ธํธ์ ํฌํ ๋ ธ๋ ๊ณผ๋ฐ์์๊ฒ ์์ ์ด ์ ์ฉ๋์๋ค๋ ์น์ธ์ ์์ฒญํ๋ ์ฐ๊ธฐ ์์ ์ ๋๋ค.
๋ฐ์ดํฐ ๋ด๊ตฌ์ฑ์ด ์๋(์ฆ, ์ฐ๊ธฐ๊ฐ ๋กค๋ฐฑ๋ ์ ์์) ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ์ํ๋ ๊ฒฝ์ฐ { w: 1 }
์ฐ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฐ๊ธฐ ์ฐ์ฐ๋ ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ฐธ๊ณ
์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค์ ๋ค๋ฅธ ์กฐํฉ๋ ์ผ๋ถ ์ํฉ์์๋ ๋ค ๊ฐ์ง ์ธ๊ณผ์ ์ผ๊ด์ฑ ๋ณด์ฅ์ ๋ชจ๋ ์ถฉ์กฑํ ์ ์์ง๋ง ๋ชจ๋ ์ํฉ์์ ๋ฐ๋์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค.
์ฝ๊ธฐ ๊ณ ๋ ค "majority"
๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค "majority"
๋ ๋คํธ์ํฌ ํํฐ์
๊ณผ ๊ฐ์ด ๋ณต์ ๋ณธ ์ธํธ์ ๋ ๋
ธ๋๊ฐ ์ผ์์ ์ผ๋ก ์์ ์ด ํ๋ผ์ด๋จธ๋ฆฌ๋ผ๊ณ ๋ฏฟ๋ ์ํฉ์์๋ ๋ค ๊ฐ์ง ์ธ๊ณผ์ ์ผ๊ด์ฑ์ด ๋ณด์ฅ๋๋๋ก ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ํ๋ผ์ด๋จธ๋ฆฌ ๋ชจ๋ { w: 1 }
์ฐ๊ธฐ ๊ณ ๋ ค๋ก ์ฐ๊ธฐ๋ฅผ ์๋ฃํ ์ ์์ง๋ง, ํ๋์ ํ๋ผ์ด๋จธ๋ฆฌ๋ง "majority"
์ฐ๊ธฐ ๊ณ ๋ ค๋ก ์ฐ๊ธฐ๋ฅผ ์๋ฃํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋คํธ์ํฌ ํํฐ์ ์ด 5๋ช ์ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๋ฅผ ๋ถํ ํ๋ ์ํฉ์ ์๊ฐํด ๋ณด์ธ์:
์์
์์ ํํฐ์ ์ผ๋ก
"majority"
์ฐ๊ธฐ ๊ณ ๋ ค๋ก ์ธ ๊ฒฝ์ฐP
์๋ก์ด ํญ๋ชฉ์์ ์๋ฃํ ์ ์์ง๋งP
์ค๋๋ ํญ๋ชฉ์์๋ ์๋ฃํ ์ ์์ต๋๋ค.{ w: 1 }
์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ๊ฐ์ง ์ฐ๊ธฐ๋P
์ด์ ๋๋P
์ ๊ท ํญ๋ชฉ์์ ์๋ฃํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋P
์ด์ ์ ๋ํ ์ฐ๊ธฐ(S
1์ ๋ณต์ ๋ ์ฐ๊ธฐ ํฌํจ)๋ ์ด๋ฌํ ๋ฉค๋ฒ๊ฐ ๋๋จธ์ง ๋ณต์ ๋ณธ ์ธํธ์ ๋ค์ ํต์ ํ๋ฉด ๋กค๋ฐฑ๋ฉ๋๋ค.P
์๋ก์ด"majority"
์ฐ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฑ๊ณต์ ์ธ ์ฐ๊ธฐ ํ"majority"
์ฝ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ผ๊ด๋ ์ฝ๊ธฐ๋P
์๋ก์ด ํญ๋ชฉ,S
2 ๋ฐS
3์ ๋ํ ์ฐ๊ธฐ๋ฅผ ๊ด์ฐฐํ ์ ์์ต๋๋ค. ๋ํ ์ฝ๊ธฐ๋ ๋ณต์ ๋ณธ ์ธํธ์ ๋๋จธ์ง ๋ถ๋ถ๊ณผ ํต์ ํ๊ณ ๋ณต์ ๋ณธ ์ธํธ์ ๋ค๋ฅธ ๋ฉค๋ฒ์ ๋๊ธฐํํ ์ ์๊ฒ ๋๋ฉดP
์ค๋๋ ํญ๋ชฉ ๋ฐS
1์ ๋ํ ์ฐ๊ธฐ๋ฅผ ๊ด์ฐฐํ ์ ์์ต๋๋ค. ์ด์ ์P
์ค๋๋ ํญ๋ชฉ์ ์ฐ๊ฑฐ๋ ํํฐ์ ์ฒ๋ฆฌ ๋์S
1์ ๋ณต์ ๋ ๋ชจ๋ ์ฐ๊ธฐ๋ ๋กค๋ฐฑ๋ฉ๋๋ค.
Scenarios
์ฝ๊ธฐ ๊ณ ๋ ค ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค ๊ด๋ จ ์๊ตฌ ์ฌํญ์ ์ค๋ช ํ๊ธฐ ์ํด ๋ค์ ์๋๋ฆฌ์ค์์๋ ํด๋ผ์ด์ธํธ๊ฐ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค๊ฐ ๋ค์ํ๊ฒ ์กฐํฉ๋ ์ผ๋ จ์ ์์ ์ ๋ณต์ ๋ณธ ์ธํธ์ ์คํํ๋๋ก ํฉ๋๋ค.
"majority"
์ฝ๊ธฐ ๊ณ ๋ ค ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค "majority"
์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ์ธ์
์์ ์ฝ๊ธฐ ๊ณ ๋ ค "majority"
์ ์ฐ๊ธฐ ๊ณ ๋ ค "majority"
์ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ธ๊ณผ์ ์ผ๊ด์ฑ์ด ๋ณด์ฅ๋ฉ๋๋ค.
์์ฒด ์ฐ๊ธฐ ์ฝ๊ธฐ โ ๋จ์กฐ์ ์ฝ๊ธฐ โ ๋จ์กฐ์ ์ฐ๊ธฐ โ ์ฝ๊ธฐ ํ ์ฐ๊ธฐ
์ฐธ๊ณ
์๋๋ฆฌ์ค 1(์ฝ๊ธฐ ๊ณ ๋ ค '๋๋ค์' ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค '๋๋ค์')
ํ๋ผ์ด๋จธ๋ฆฌ๊ฐ ๋ ๊ฐ์ธ ์ด ์ผ์์ ์ธ ๊ธฐ๊ฐ ๋์์๋ P
์๋ก์ด ํญ๋ชฉ๋ง์ด { w: "majority" }
์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ํตํด ์ฐ๊ธฐ๋ฅผ ์ํํ ์ ์์ผ๋ฏ๋ก ํด๋ผ์ด์ธํธ ์ธ์
์์ ๋ค์ ์์
์์๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์คํํ ์ ์์ต๋๋ค.
์ํ์ค | ์์ |
---|---|
1. Write 1 with write concern "majority" to P new2. Read 1 with read concern "majority" to S 23. Write 2 with write concern "majority" to P new4. Read 2 with read concern "majority" to S 3 | For item A , update qty to 50 .Read item A .For items with qty less than or equal to 50 ,update restock to true .Read item A . |
โ ์์ฒด ์ฐ๊ธฐ ์ฝ๊ธฐ | Read 1 reads data from S 2 that reflects a state after Write 1.Read 2 reads data from S 3 that
reflects a state after Write 1 followed by Write
2. |
โ ๋จ์กฐ์ ์ฝ๊ธฐ | ์ฝ๊ธฐ 2๋ ์ฝ๊ธฐ 1 ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ๋ |
โ ๋จ์กฐ์ ์ฐ๊ธฐ | ์ฐ๊ธฐ๋ 2 ์ฐ๊ธฐ ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ๋ 1 |
โ ์ฝ๊ธฐ ๋ค์์ ์ฐ๊ธฐ | ์ฐ๊ธฐ 2๋ ์ฝ๊ธฐ 1 ์ดํ์ ๋ฐ์ดํฐ ์ํ๋ฅผ ๋ฐ์ํ๋ |
์ฐธ๊ณ
์๋๋ฆฌ์ค 2 (์ฝ๊ธฐ ๊ณ ๋ ค '๋๋ค์' ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค '๋๋ค์')
์ฝ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฝ๊ธฐ1์ ๊ฒฝ์ฐ "majority"
๊ฐ S
1์ผ๋ก ๋ผ์ฐํ
๋๋ ๋์ฒด ์ํ์ค๋ฅผ ๊ณ ๋ คํฉ๋๋ค:
์ํ์ค | ์์ |
---|---|
1. Write 1 with write concern "majority" to P new2. Read 1 with read concern "majority" to S 13. Write 2 with write concern "majority" to P new4. Read 2 with with read concern "majority" to S 3 | For item A , update qty to 50 .Read item A .For items with qty less than or equal to 50 ,update restock to true .Read item A . |
์ด ์ํ์ค์์ ์ฝ๊ธฐ๋ 1 P
์ค๋๋ ํญ๋ชฉ์์ ๊ณผ๋ฐ์ ์ปค๋ฐ ํฌ์ธํธ๊ฐ ์งํ๋๊ธฐ ์ ์ ๋ฐํ๋ ์ ์์ต๋๋ค. ์ด๋ P
์ค๋๋ ํญ๋ชฉ ๋ฐ S
1์ด ๋ณต์ ๋ณธ ์ธํธ์ ๋๋จธ์ง ๋ถ๋ถ๊ณผ ํต์ ํ ์ ์์ ๋๊น์ง ์งํ๋ ์ ์์ต๋๋ค. ์ด๋ P
์ค๋๋ ํญ๋ชฉ์ด ์ค๋จ(์์ง ์ค๋จ๋์ง ๊ฒฝ์ฐ)๋๋ฉฐ, ๋ ๋ฉค๋ฒ๊ฐ ๋ณต์ ๋ณธ ์ธํธ์ ๋ค๋ฅธ ๋ฉค๋ฒ๋ก๋ถํฐ ๋๊ธฐํ(์ฐ๊ธฐ ํฌํจ1)ํฉ๋๋ค.
โ ์์ฒด ์ฐ๊ธฐ ์ฝ๊ธฐ | Read 1 reflects a state of data after Write
1, albeit after the network partition has healed
and the member has sync'ed from the other members of the
replica set. Read 2 reads data from S 3 that
reflects a state after Write 1 followed by Write
2. |
โ ๋จ์กฐ์ ์ฝ๊ธฐ | ์ฝ๊ธฐ๋2 |
โ ๋จ์กฐ์ ์ฐ๊ธฐ | ์ฐ๊ธฐ๋ 2 ์ฐ๊ธฐ ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ๋ 1 |
โ ์ฝ๊ธฐ ๋ค์์ ์ฐ๊ธฐ | ์ฐ๊ธฐ 2๋ ์ฝ๊ธฐ 1 ์ดํ์ ๋ฐ์ดํฐ ์ํ๋ฅผ ๋ฐ์ํ๋ |
"majority"
์ฝ๊ธฐ ๊ณ ๋ ค ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค {w: 1}
์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ์ธ์
์์ ์ฝ๊ธฐ ๊ณ ๋ ค "majority"
์ ์ฐ๊ธฐ ๊ณ ๋ ค { w: 1 }
์ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ๋ด๊ตฌ์ฑ์ ๋ํ ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ์ํ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ์ธ๊ณผ์ ์ผ๊ด์ฑ์ด ๋ณด์ฅ๋ฉ๋๋ค.
์์ฒด ์ฐ๊ธฐ ์ฝ๊ธฐ โ ๋จ์กฐ์ ์ฝ๊ธฐ โ ๋จ์กฐ์ ์ฐ๊ธฐ โ ์ฝ๊ธฐ ํ ์ฐ๊ธฐ
๋ฐ์ดํฐ ๋ด๊ตฌ์ฑ ์์ด ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ์ ์งํ๋ ค๋ ๊ฒฝ์ฐ:
์์ฒด ์ฐ๊ธฐ ์ฝ๊ธฐ โ ๋จ์กฐ์ ์ฝ๊ธฐ โ ๋จ์กฐ์ ์ฐ๊ธฐ โ ์ฝ๊ธฐ ํ ์ฐ๊ธฐ
์ฐธ๊ณ
์๋๋ฆฌ์ค 3(์ฝ๊ธฐ ๊ณ ๋ ค '๋๋ค์' ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค {w: 1})
๋ ๊ฐ์ ํ๋ผ์ด๋จธ๋ฆฌ๊ฐ ์๋ ์ผ์์ ์ธ ๊ธฐ๊ฐ ๋์ P
์ค๋๋ ํญ๋ชฉ ๋ฐ P
์๋ก์ด ํญ๋ชฉ ๋ชจ๋ { w: 1 }
์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ํตํด ์ฐ๊ธฐ๋ฅผ ์ํํ ์ ์์ผ๋ฏ๋ก ํด๋ผ์ด์ธํธ ์ธ์
์์ ๋ค์ ์์
์์๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์คํํ ์ ์์ง๋ง ๋ฐ์ดํฐ ๋ด๊ตฌ์ฑ์ด ์ ์ง๋๋ ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ์ํ๋ ๊ฒฝ์ฐ ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋์ง ์์ ์ ์์ต๋๋ค:
์ํ์ค | ์์ |
---|---|
1. Write 1 with write concern { w: 1 } to P old2. Read 1 with read concern "majority" to S 23. Write 2 with write concern { w: 1 } to P new4. Read 2 with with read concern "majority" to S 3 | For item A , update qty to 50 .Read item A .For items with qty less than or equal to 50 ,update restock to true .Read item A . |
ํด๋น ์ํ์ค์์,
์ฝ๊ธฐ 1์ ์ฐ๊ธฐ 1์ ์์ ์ ์ง๋
P
์์ ์๋ก ๊ณผ๋ฐ์ ์ปค๋ฐ ํฌ์ธํธ๊ฐ ์งํ๋ ๋๊น์ง ๋ฐํํ ์ ์์ต๋๋ค.์ฝ๊ธฐ 2๋ ๊ณผ๋ฐ์ ์ปค๋ฐ ํฌ์ธํธ๊ฐ ์ฐ๊ธฐ2 ์์ ์ ์ง๋
P
์๋ก์ด ํญ๋ชฉ์ผ๋ก ์งํ๋ ๋๊น์ง ๋ฐํํ ์ ์์ต๋๋ค.์ฐ๊ธฐ 1์ ๋คํธ์ํฌ ํํฐ์ ์ด ๋ณต๊ตฌ๋ ๋ ๋กค๋ฐฑ๋ฉ๋๋ค.
๋ฐ์ดํฐ ๋ด๊ตฌ์ฑ์ด ์ ์ง๋ ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ์ํ๋ ๊ฒฝ์ฐ
โ ์์ฒด ์ฐ๊ธฐ ์ฝ๊ธฐ | ์ฝ๊ธฐ1์ ์ฐ๊ธฐ1 ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ์ง ์๋ |
โ ๋จ์กฐ์ ์ฝ๊ธฐ | ์ฝ๊ธฐ๋2 |
โ ๋จ์กฐ์ ์ฐ๊ธฐ | ์ฐ๊ธฐ2๋ ์ฐ๊ธฐ1 ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ์ง ์๋ |
โ ์ฝ๊ธฐ ๋ค์์ ์ฐ๊ธฐ | ์ฐ๊ธฐ 2๋ ์ฝ๊ธฐ 1 ์ดํ์ ๋ฐ์ดํฐ ์ํ๋ฅผ ๋ฐ์ํ๋ |
โค ๋ฐ์ดํฐ ๋ด๊ตฌ์ฑ์ด ์ ์ง๋ ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ์ํ๋ ๊ฒฝ์ฐ
โ ์์ฒด ์ฐ๊ธฐ ์ฝ๊ธฐ | ์ฝ๊ธฐ1์ ์ฐ๊ธฐ1์ ํด๋นํ๋ ์ํ ๋ฅผ ๋ฐ์ํ๋ |
โ ๋จ์กฐ์ ์ฝ๊ธฐ | ์ฝ๊ธฐ๋2 |
โ ๋จ์กฐ์ ์ฐ๊ธฐ | ์ฐ๊ธฐ2๋ ์ฐ๊ธฐ1์ ๋กค๋ฐฑํ ํ ์ฐ๊ธฐ1 ํด๋นํ๋ |
โ ์ฝ๊ธฐ ๋ค์์ ์ฐ๊ธฐ | ์ฐ๊ธฐ 2๋ ์ฝ๊ธฐ 1 ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ๋ |
์ฐธ๊ณ
์๋๋ฆฌ์ค 4(์ฝ๊ธฐ ๊ณ ๋ ค '๋๋ค์' ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค {w: 1})
์ฝ๊ธฐ ๊ณ ๋ ค๊ฐ ์๋ ์ฝ๊ธฐ1์ ๊ฒฝ์ฐ "majority"
๊ฐ S
1์ผ๋ก ๋ผ์ฐํ
๋๋ ๋์ฒด ์ํ์ค๋ฅผ ๊ณ ๋ คํฉ๋๋ค:
์ํ์ค | ์์ |
---|---|
1. Write 1 with write concern { w: 1 } to P old2. Read 1 with read concern "majority" to S 13. Write 2 with write concern { w: 1 } to P new4. Read 2 with with read concern "majority" to S 3 | For item A , update qty to 50 .Read item A .For items with qty less than or equal to 50 ,update restock to true .Read item A . |
ํด๋น ์ํ์ค์์:
์ฝ๊ธฐ 1์
S
1์์ ๊ณผ๋ฐ์ ์ปค๋ฐ ํฌ์ธํธ๊ฐ ์งํ๋ ๋๊น์ง ๋ฐํํ ์ ์์ต๋๋ค.P
์ด์ ๋ฐS
1์ด ๋๋จธ์ง ๋ณต์ ๋ณธ ์ธํธ์ ํต์ ํ ์ ์์ ๋๊น์ง๋ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. ์ด๋P
์ด์ ์ด ๋ฌผ๋ฌ๋๊ณ (์์ง ๋ฌผ๋ฌ๋์ง ์์ ๊ฒฝ์ฐ), ์ฐ๊ธฐ 1์ดP
์ด์ ๊ณผS
1์์ ๋กค๋ฐฑ๋๊ณ , ๋ ๋ ธ๋๋ ๋ณต์ ๋ณธ ์ธํธ์ ๋ค๋ฅธ ๋ ธ๋๋ก๋ถํฐ ๋๊ธฐํ๋ฉ๋๋ค.
๋ฐ์ดํฐ ๋ด๊ตฌ์ฑ์ด ์ ์ง๋ ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ์ํ๋ ๊ฒฝ์ฐ
โ ์์ฒด ์ฐ๊ธฐ ์ฝ๊ธฐ | ์ฝ๊ธฐ 1์์ ์ฝ์ ๋ฐ์ดํฐ๋ ๋กค๋ฐฑ๋ ์ฐ๊ธฐ 1์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํ์ง ์์ต๋๋ค. |
โ ๋จ์กฐ์ ์ฝ๊ธฐ | ์ฝ๊ธฐ2๋ ์ฝ๊ธฐ1 ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ๋ |
โ ๋จ์กฐ์ ์ฐ๊ธฐ | ์ฐ๊ธฐ 2๋ ์ฐ๊ธฐ 1 ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ์ง ์๋ |
โ ์ฝ๊ธฐ ๋ค์์ ์ฐ๊ธฐ | ์ฐ๊ธฐ 2๋ ์ฝ๊ธฐ 1 ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ๋ |
โค ๋ฐ์ดํฐ ๋ด๊ตฌ์ฑ์ด ์ ์ง๋ ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ์ํ๋ ๊ฒฝ์ฐ
โ ์์ฒด ์ฐ๊ธฐ ์ฝ๊ธฐ | ์ฝ๊ธฐ1์ ๊ถ๊ทน์ ์ผ๋ก ์ฐ๊ธฐ1์ด ๋กค๋ฐฑ๋ ์ดํ ์ฐ๊ธฐ 1์ ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํฉ๋๋ค. |
โ ๋จ์กฐ์ ์ฝ๊ธฐ | ์ฝ๊ธฐ2๋ ์ฝ๊ธฐ1 ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ๋ |
โ ๋จ์กฐ์ ์ฐ๊ธฐ | ์ฐ๊ธฐ2๋ ์ฐ๊ธฐ1์ ๋กค๋ฐฑํ ํ ์ฐ๊ธฐ1 ํด๋นํ๋ |
โ ์ฝ๊ธฐ ๋ค์์ ์ฐ๊ธฐ | ์ฐ๊ธฐ 2๋ ์ฝ๊ธฐ 1 ์ดํ์ ๋ฐ์ดํฐ ์ํ๋ฅผ ๋ฐ์ํ๋ |
"local"
์ฝ๊ธฐ ๊ณ ๋ ค ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค {w: 1}
์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ์ธ์
์์ ์ฝ๊ธฐ ๊ณ ๋ ค "local"
์ ์ฐ๊ธฐ ๊ณ ๋ ค { w: 1 }
๋ฅผ ์ฌ์ฉํ๋ฉด ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ ์ ์์ต๋๋ค.
โ ์์ฒด ์ฐ๊ธฐ ์ฝ๊ธฐ โ ๋จ์กฐ์ ์ฝ๊ธฐ โ ๋จ์กฐ์ ์ฐ๊ธฐ โ ์ฝ๊ธฐ ํ ์ฐ๊ธฐ
์ด ์กฐํฉ์ ์ํฉ์ ๋ฐ๋ผ ๋ค ๊ฐ์ง ์ธ๊ณผ์ ์ผ๊ด์ฑ ๋ณด์ฅ์ ๋ชจ๋ ์ถฉ์กฑํ ์ ์์ง๋ง ๋ชจ๋ ์ํฉ์์ ๋ฐ๋์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค.
์ฐธ๊ณ
์๋๋ฆฌ์ค 5(์ฝ๊ธฐ ๊ณ ๋ ค '๋ก์ปฌ' ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค {w: 1})
์ด ์ผ์์ ์ธ ๊ธฐ๊ฐ ๋์์๋ P
์ด์ ๋ฐ P
์ ๊ท ๋ชจ๋ { w: 1 }
์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ํตํด ์ฐ๊ธฐ๋ฅผ ์ํํ ์ ์์ผ๋ฏ๋ก ํด๋ผ์ด์ธํธ ์ธ์
์์ ๋ค์ ์์
์์๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์คํํ ์ ์์ง๋ง ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋์ง ์์ ์ ์์ต๋๋ค:
์ํ์ค | ์์ |
---|---|
For item A , update qty to 50 .Read item A .For items with qty less than or equal to 50 ,update restock to true .Read item A . |
โ ์์ฒด ์ฐ๊ธฐ ์ฝ๊ธฐ | ์ฝ๊ธฐ 2๊ฐ ์ฐ๊ธฐ 1๊ณผ ์ฐ๊ธฐ 2๊ฐ ์๋๋ผ Write 2 ์ดํ์ ์ํ๋ง ๋ฐ์ํ๋ |
โ ๋จ์กฐ์ ์ฝ๊ธฐ | ์ฝ๊ธฐ 2๋ ์ฝ๊ธฐ 1 ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ์ง ์๋ |
โ ๋จ์กฐ์ ์ฐ๊ธฐ | ์ฐ๊ธฐ2๋ ์ฐ๊ธฐ1 ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ์ง ์๋ |
โ ์ฝ๊ธฐ ํ ์ฐ๊ธฐ | ์ฐ๊ธฐ 2๋ ์ฝ๊ธฐ 1 ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ์ง ์๋ |
"local"
์ฝ๊ธฐ ๊ณ ๋ ค ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค "majority"
์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ์ธ์
์์ ์ฝ๊ธฐ ๊ณ ๋ ค "local"
์ ์ฐ๊ธฐ ๊ณ ๋ ค "majority"
์ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ธ๊ณผ์ ์ผ๊ด์ฑ์ด ๋ณด์ฅ๋ฉ๋๋ค.
โ ์์ฒด ์ฐ๊ธฐ ์ฝ๊ธฐ โ ๋จ์กฐ์ ์ฝ๊ธฐ โ ๋จ์กฐ์ ์ฐ๊ธฐ โ ์ฝ๊ธฐ ํ ์ฐ๊ธฐ
์ด ์กฐํฉ์ ์ํฉ์ ๋ฐ๋ผ ๋ค ๊ฐ์ง ์ธ๊ณผ์ ์ผ๊ด์ฑ ๋ณด์ฅ์ ๋ชจ๋ ์ถฉ์กฑํ ์ ์์ง๋ง ๋ชจ๋ ์ํฉ์์ ๋ฐ๋์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค.
์ฐธ๊ณ
์๋๋ฆฌ์ค 6(์ฝ๊ธฐ ๊ณ ๋ ค '๋ก์ปฌ' ๋ฐ ์ฐ๊ธฐ ๊ณ ๋ ค '๋๋ค์')
์ด ์ผ์์ ์ธ ๊ธฐ๊ฐ ๋์์๋ P
์๋ก์ด ํญ๋ชฉ๋ง์ด { w: "majority" }
์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ํตํด ์ฐ๊ธฐ๋ฅผ ์ํํ ์ ์์ผ๋ฏ๋ก ํด๋ผ์ด์ธํธ ์ธ์
์์ ๋ค์ ์์
์์๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์คํํ ์ ์์ง๋ง ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋์ง ์์ ์ ์์ต๋๋ค:
์ํ์ค | ์์ |
---|---|
1. Write 1 with write concern "majority" to P new2. Read 1 with read concern "local" to S 13. Write 2 with write concern "majority" to P new4. Read 2 with read concern "local" to S 3 | For item A , update qty to 50 .Read item A .For items with qty less than or equal to 50 ,update restock to true .Read item A . |
โ ์์ฒด ์ฐ๊ธฐ ์ฝ๊ธฐ | ์ฝ๊ธฐ1์ ์ฐ๊ธฐ 1 ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ์ง ์๋ |
โ ๋จ์กฐ์ ์ฝ๊ธฐ์ ๋๋ค. | ์ฝ๊ธฐ 2๋ ์ฝ๊ธฐ 1 ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ์ง ์๋ |
โ ๋จ์กฐ์ ์ฐ๊ธฐ | ์ฐ๊ธฐ๋ 2 ์ฐ๊ธฐ ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ๋ 1 |
โ ์ฝ๊ธฐ ํ ์ฐ๊ธฐ | ์ฐ๊ธฐ 2๋ ์ฝ๊ธฐ 1 ์ดํ์ ์ํ๋ฅผ ๋ฐ์ํ์ง ์๋ |