Docs Menu
Docs Home
/
MongoDB ๋งค๋‰ด์–ผ
/ / /

์ธ๊ณผ์  ์ผ๊ด€์„ฑ ๋ฐ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ๊ณ ๋ ค

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 ์˜ค๋ž˜๋œ ํ•ญ๋ชฉ์— ์“ฐ๊ฑฐ๋‚˜ ํŒŒํ‹ฐ์…˜ ์ฒ˜๋ฆฌ ๋™์•ˆ S1์— ๋ณต์ œ๋œ ๋ชจ๋“  ์“ฐ๊ธฐ๋Š” ๋กค๋ฐฑ๋ฉ๋‹ˆ๋‹ค.

์ฝ๊ธฐ ๊ณ ๋ ค ๋ฐ ์“ฐ๊ธฐ ๊ณ ๋ ค ๊ด€๋ จ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ๊ณ ๋ ค๊ฐ€ ๋‹ค์–‘ํ•˜๊ฒŒ ์กฐํ•ฉ๋œ ์ผ๋ จ์˜ ์ž‘์—…์„ ๋ณต์ œ๋ณธ ์„ธํŠธ์— ์‹คํ–‰ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ธ๊ณผ์ ์œผ๋กœ ์ผ๊ด€๋œ ์„ธ์…˜์—์„œ ์ฝ๊ธฐ ๊ณ ๋ ค "majority"์™€ ์“ฐ๊ธฐ ๊ณ ๋ ค "majority"์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.

์ž์ฒด ์“ฐ๊ธฐ ์ฝ๊ธฐ โœ… ๋‹จ์กฐ์  ์ฝ๊ธฐ โœ… ๋‹จ์กฐ์  ์“ฐ๊ธฐ โœ… ์ฝ๊ธฐ ํ›„ ์“ฐ๊ธฐ

์ฐธ๊ณ 

์‹œ๋‚˜๋ฆฌ์˜ค 1(์ฝ๊ธฐ ๊ณ ๋ ค '๋Œ€๋‹ค์ˆ˜' ๋ฐ ์“ฐ๊ธฐ ๊ณ ๋ ค '๋Œ€๋‹ค์ˆ˜')

ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋‘ ๊ฐœ์ธ ์ด ์ผ์‹œ์ ์ธ ๊ธฐ๊ฐ„ ๋™์•ˆ์—๋Š” P ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ๋งŒ์ด { w: "majority" } ์“ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ํ†ตํ•ด ์“ฐ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ ์„ธ์…˜์—์„œ ๋‹ค์Œ ์ž‘์—… ์ˆœ์„œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œํ€€์Šค
์˜ˆ์‹œ
1. Write 1 with write concern "majority" to P new
2. Read 1 with read concern "majority" to S 2
3. Write 2 with write concern "majority" to P new

4. 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 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” S3์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.

โœ… ๋‹จ์กฐ์  ์“ฐ๊ธฐ

์“ฐ๊ธฐ๋Š” 2 ์“ฐ๊ธฐ ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” 1 P ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

โœ… ์ฝ๊ธฐ ๋‹ค์Œ์— ์“ฐ๊ธฐ

์“ฐ๊ธฐ 2๋Š” ์ฝ๊ธฐ 1 ์ดํ›„์˜ ๋ฐ์ดํ„ฐ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” P ์‹ ๊ทœ์— ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ฝ๊ธฐ 1์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด์ „ ์ƒํƒœ์— ๋ฐ˜์˜๋œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์‹œ๋‚˜๋ฆฌ์˜ค 2 (์ฝ๊ธฐ ๊ณ ๋ ค '๋Œ€๋‹ค์ˆ˜' ๋ฐ ์“ฐ๊ธฐ ๊ณ ๋ ค '๋Œ€๋‹ค์ˆ˜')

์ฝ๊ธฐ ๊ณ ๋ ค๊ฐ€ ์žˆ๋Š” ์ฝ๊ธฐ1์˜ ๊ฒฝ์šฐ "majority"๊ฐ€ S 1์œผ๋กœ ๋ผ์šฐํŒ…๋˜๋Š” ๋Œ€์ฒด ์‹œํ€€์Šค๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค:

์‹œํ€€์Šค
์˜ˆ์‹œ
1. Write 1 with write concern "majority" to P new
2. Read 1 with read concern "majority" to S 1
3. Write 2 with write concern "majority" to P new

4. 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 S์—์„œ3 ์ฝ๊ธฐ1 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์Šต๋‹ˆ(์ฆ‰, ์ฝ๊ธฐ1์— ์˜ํ•ด ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ์— ์ด์ „ ์ƒํƒœ๊ฐ€ ๋ฐ˜์˜๋จ).

โœ… ๋‹จ์กฐ์  ์“ฐ๊ธฐ

์“ฐ๊ธฐ๋Š” 2 ์“ฐ๊ธฐ ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” 1 P ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

โœ… ์ฝ๊ธฐ ๋‹ค์Œ์— ์“ฐ๊ธฐ

์“ฐ๊ธฐ 2๋Š” ์ฝ๊ธฐ 1 ์ดํ›„์˜ ๋ฐ์ดํ„ฐ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” P ์‹ ๊ทœ์— ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ฝ๊ธฐ 1์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด์ „ ์ƒํƒœ์— ๋ฐ˜์˜๋œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

์ธ๊ณผ์ ์œผ๋กœ ์ผ๊ด€๋œ ์„ธ์…˜์—์„œ ์ฝ๊ธฐ ๊ณ ๋ ค "majority"์™€ ์“ฐ๊ธฐ ๊ณ ๋ ค { w: 1 }์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๋‚ด๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.

์ž์ฒด ์“ฐ๊ธฐ ์ฝ๊ธฐ โŒ ๋‹จ์กฐ์  ์ฝ๊ธฐ โŒ ๋‹จ์กฐ์  ์“ฐ๊ธฐ โœ… ์ฝ๊ธฐ ํ›„ ์“ฐ๊ธฐ

๋ฐ์ดํ„ฐ ๋‚ด๊ตฌ์„ฑ ์—†์ด ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ:

์ž์ฒด ์“ฐ๊ธฐ ์ฝ๊ธฐ โœ… ๋‹จ์กฐ์  ์ฝ๊ธฐ โœ… ๋‹จ์กฐ์  ์“ฐ๊ธฐ โœ… ์ฝ๊ธฐ ํ›„ ์“ฐ๊ธฐ

์ฐธ๊ณ 

์‹œ๋‚˜๋ฆฌ์˜ค 3(์ฝ๊ธฐ ๊ณ ๋ ค '๋Œ€๋‹ค์ˆ˜' ๋ฐ ์“ฐ๊ธฐ ๊ณ ๋ ค {w: 1})

๋‘ ๊ฐœ์˜ ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ์žˆ๋Š” ์ผ์‹œ์ ์ธ ๊ธฐ๊ฐ„ ๋™์•ˆ P ์˜ค๋ž˜๋œ ํ•ญ๋ชฉ ๋ฐ P ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ ๋ชจ๋‘ { w: 1 } ์“ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ํ†ตํ•ด ์“ฐ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ ์„ธ์…˜์—์„œ ๋‹ค์Œ ์ž‘์—… ์ˆœ์„œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐ์ดํ„ฐ ๋‚ด๊ตฌ์„ฑ์ด ์œ ์ง€๋˜๋Š” ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ธ๊ณผ์ ์œผ๋กœ ์ผ๊ด€๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

์‹œํ€€์Šค
์˜ˆ์‹œ
1. Write 1 with write concern { w: 1 } to P old
2. Read 1 with read concern "majority" to S 2
3. Write 2 with write concern { w: 1 } to P new

4. 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์€ ์“ฐ๊ธฐ 1์˜ ์‹œ์ ์„ ์ง€๋‚˜ P์—์„œ ์ƒˆ๋กœ ๊ณผ๋ฐ˜์ˆ˜ ์ปค๋ฐ‹ ํฌ์ธํŠธ๊ฐ€ ์ง„ํ–‰๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • ์ฝ๊ธฐ 2๋Š” ๊ณผ๋ฐ˜์ˆ˜ ์ปค๋ฐ‹ ํฌ์ธํŠธ๊ฐ€ ์“ฐ๊ธฐ2 ์‹œ์ ์„ ์ง€๋‚˜ P ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ์œผ๋กœ ์ง„ํ–‰๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • ์“ฐ๊ธฐ 1์€ ๋„คํŠธ์›Œํฌ ํŒŒํ‹ฐ์…˜์ด ๋ณต๊ตฌ๋  ๋•Œ ๋กค๋ฐฑ๋ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋‚ด๊ตฌ์„ฑ์ด ์œ ์ง€๋œ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ

โŒ ์ž์ฒด ์“ฐ๊ธฐ ์ฝ๊ธฐ

์ฝ๊ธฐ1์€ ์“ฐ๊ธฐ1 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€ ์•Š๋Š” S 2์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.

โœ… ๋‹จ์กฐ์  ์ฝ๊ธฐ

์ฝ๊ธฐ๋Š”2 S์—์„œ3 ์ฝ๊ธฐ1 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์Šต๋‹ˆ(์ฆ‰, ์ฝ๊ธฐ1์— ์˜ํ•ด ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ์— ์ด์ „ ์ƒํƒœ๊ฐ€ ๋ฐ˜์˜๋จ).

โŒ ๋‹จ์กฐ์  ์“ฐ๊ธฐ

์“ฐ๊ธฐ2๋Š” ์“ฐ๊ธฐ1 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€ ์•Š๋Š” P ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

โœ… ์ฝ๊ธฐ ๋‹ค์Œ์— ์“ฐ๊ธฐ

์“ฐ๊ธฐ 2๋Š” ์ฝ๊ธฐ 1 ์ดํ›„์˜ ๋ฐ์ดํ„ฐ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” P ์‹ ๊ทœ์— ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ฝ๊ธฐ 1์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด์ „ ์ƒํƒœ์— ๋ฐ˜์˜๋œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

โžค ๋ฐ์ดํ„ฐ ๋‚ด๊ตฌ์„ฑ์ด ์œ ์ง€๋œ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ

โœ… ์ž์ฒด ์“ฐ๊ธฐ ์ฝ๊ธฐ

์ฝ๊ธฐ1์€ ์“ฐ๊ธฐ1์— ํ•ด๋‹นํ•˜๋Š” ์ƒํƒœ ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” S 2์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์€ ๋‹ค์Œ ์“ฐ๊ธฐ1์„ ๋กค๋ฐฑ ํ•ฉ๋‹ˆ๋‹ค.

โœ… ๋‹จ์กฐ์  ์ฝ๊ธฐ

์ฝ๊ธฐ๋Š”2 S์—์„œ3 ์ฝ๊ธฐ1 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์Šต๋‹ˆ(์ฆ‰, ์ฝ๊ธฐ1์— ์˜ํ•ด ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ์— ์ด์ „ ์ƒํƒœ๊ฐ€ ๋ฐ˜์˜๋จ).

โœ… ๋‹จ์กฐ์  ์“ฐ๊ธฐ

์“ฐ๊ธฐ2๋Š” ์“ฐ๊ธฐ1์„ ๋กค๋ฐฑํ•œ ํ›„ ์“ฐ๊ธฐ1 ํ•ด๋‹นํ•˜๋Š” P ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

โœ… ์ฝ๊ธฐ ๋‹ค์Œ์— ์“ฐ๊ธฐ

์“ฐ๊ธฐ 2๋Š” ์ฝ๊ธฐ 1 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” P ์‹ ๊ทœ์— ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ฝ๊ธฐ 1์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด์ „ ์ƒํƒœ์— ๋ฐ˜์˜๋œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์‹œ๋‚˜๋ฆฌ์˜ค 4(์ฝ๊ธฐ ๊ณ ๋ ค '๋Œ€๋‹ค์ˆ˜' ๋ฐ ์“ฐ๊ธฐ ๊ณ ๋ ค {w: 1})

์ฝ๊ธฐ ๊ณ ๋ ค๊ฐ€ ์žˆ๋Š” ์ฝ๊ธฐ1์˜ ๊ฒฝ์šฐ "majority"๊ฐ€ S 1์œผ๋กœ ๋ผ์šฐํŒ…๋˜๋Š” ๋Œ€์ฒด ์‹œํ€€์Šค๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค:

์‹œํ€€์Šค
์˜ˆ์‹œ
1. Write 1 with write concern { w: 1 } to P old
2. Read 1 with read concern "majority" to S 1
3. Write 2 with write concern { w: 1 } to P new

4. 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 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” S 3์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค(์ฆ‰, ์ฝ๊ธฐ 1์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ์ด์ „ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•จ).

โŒ ๋‹จ์กฐ์  ์“ฐ๊ธฐ

์“ฐ๊ธฐ 2๋Š” ์“ฐ๊ธฐ 1 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€ ์•Š๋Š” P ์‹ ๊ทœ์— ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š”๋ฐ, ์ด ๋ฐ์ดํ„ฐ๋Š” ์“ฐ๊ธฐ 2๋ณด๋‹ค ์•ž์„œ ์žˆ์—ˆ์ง€๋งŒ ๋กค๋ฐฑ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

โœ… ์ฝ๊ธฐ ๋‹ค์Œ์— ์“ฐ๊ธฐ

์“ฐ๊ธฐ 2๋Š” ์ฝ๊ธฐ 1 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” P ์‹ ๊ทœ์— ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ฝ๊ธฐ 1์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด์ „ ์ƒํƒœ์— ๋ฐ˜์˜๋œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

โžค ๋ฐ์ดํ„ฐ ๋‚ด๊ตฌ์„ฑ์ด ์œ ์ง€๋œ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ

โœ… ์ž์ฒด ์“ฐ๊ธฐ ์ฝ๊ธฐ

์ฝ๊ธฐ1์€ ๊ถ๊ทน์ ์œผ๋กœ ์“ฐ๊ธฐ1์ด ๋กค๋ฐฑ๋œ ์ดํ›„ ์“ฐ๊ธฐ 1์˜ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

โœ… ๋‹จ์กฐ์  ์ฝ๊ธฐ

์ฝ๊ธฐ2๋Š” ์ฝ๊ธฐ1 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” S 3์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค(์ฆ‰, ์ด์ „ ์ƒํƒœ๊ฐ€ ์ฝ๊ธฐ 1์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜์˜ํ•œ๋‹ค๋Š” ์˜๋ฏธ).

โœ… ๋‹จ์กฐ์  ์“ฐ๊ธฐ

์“ฐ๊ธฐ2๋Š” ์“ฐ๊ธฐ1์„ ๋กค๋ฐฑํ•œ ํ›„ ์“ฐ๊ธฐ1 ํ•ด๋‹นํ•˜๋Š” P ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

โœ… ์ฝ๊ธฐ ๋‹ค์Œ์— ์“ฐ๊ธฐ

์“ฐ๊ธฐ 2๋Š” ์ฝ๊ธฐ 1 ์ดํ›„์˜ ๋ฐ์ดํ„ฐ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” P ์‹ ๊ทœ์— ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ฝ๊ธฐ 1์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด์ „ ์ƒํƒœ์— ๋ฐ˜์˜๋œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

์ธ๊ณผ์ ์œผ๋กœ ์ผ๊ด€๋œ ์„ธ์…˜์—์„œ ์ฝ๊ธฐ ๊ณ ๋ ค "local"์™€ ์“ฐ๊ธฐ ๊ณ ๋ ค { w: 1 }๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

โŒ ์ž์ฒด ์“ฐ๊ธฐ ์ฝ๊ธฐ โŒ ๋‹จ์กฐ์  ์ฝ๊ธฐ โŒ ๋‹จ์กฐ์  ์“ฐ๊ธฐ โŒ ์ฝ๊ธฐ ํ›„ ์“ฐ๊ธฐ

์ด ์กฐํ•ฉ์€ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋„ค ๊ฐ€์ง€ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ ๋ณด์žฅ์„ ๋ชจ๋‘ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ชจ๋“  ์ƒํ™ฉ์—์„œ ๋ฐ˜๋“œ์‹œ ๊ทธ๋Ÿฐ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์‹œ๋‚˜๋ฆฌ์˜ค 5(์ฝ๊ธฐ ๊ณ ๋ ค '๋กœ์ปฌ' ๋ฐ ์“ฐ๊ธฐ ๊ณ ๋ ค {w: 1})

์ด ์ผ์‹œ์ ์ธ ๊ธฐ๊ฐ„ ๋™์•ˆ์—๋Š” P ์ด์ „ ๋ฐ P ์‹ ๊ทœ ๋ชจ๋‘ { w: 1 } ์“ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ํ†ตํ•ด ์“ฐ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ ์„ธ์…˜์—์„œ ๋‹ค์Œ ์ž‘์—… ์ˆœ์„œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ธ๊ณผ์ ์œผ๋กœ ์ผ๊ด€๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

์‹œํ€€์Šค
์˜ˆ์‹œ
1. Write 1 with write concern { w: 1 } to P old
2. Read 1 with read concern "local" to S 1
3. Write 2 with write concern { w: 1 } to P new

4. 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์„ ์‚ฌ์šฉํ•˜๋Š” ๋‘ ๊ฐœ์˜ ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ƒํƒœ
ํด๋ฆญํ•˜์—ฌ ํ™•๋Œ€

โŒ ์ž์ฒด ์“ฐ๊ธฐ ์ฝ๊ธฐ

์ฝ๊ธฐ 2๊ฐ€ ์“ฐ๊ธฐ 1๊ณผ ์“ฐ๊ธฐ 2๊ฐ€ ์•„๋‹ˆ๋ผ Write 2 ์ดํ›„์˜ ์ƒํƒœ๋งŒ ๋ฐ˜์˜ํ•˜๋Š” S 3์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.

โŒ ๋‹จ์กฐ์  ์ฝ๊ธฐ

์ฝ๊ธฐ 2๋Š” ์ฝ๊ธฐ 1 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€ ์•Š๋Š” S 3์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค(์ฆ‰, ์ด์ „ ์ƒํƒœ๋Š” ์ฝ๊ธฐ 1์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€ ์•Š์Œ).

โŒ ๋‹จ์กฐ์  ์“ฐ๊ธฐ

์“ฐ๊ธฐ2๋Š” ์“ฐ๊ธฐ1 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€ ์•Š๋Š” P ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

โŒ ์ฝ๊ธฐ ํ›„ ์“ฐ๊ธฐ

์“ฐ๊ธฐ 2๋Š” ์ฝ๊ธฐ 1 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€ ์•Š๋Š” P ์‹ ๊ทœ์— ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค(์ฆ‰, ์ด์ „ ์ƒํƒœ๋Š” ์ฝ๊ธฐ 1์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€ ์•Š์Œ).

์ธ๊ณผ์ ์œผ๋กœ ์ผ๊ด€๋œ ์„ธ์…˜์—์„œ ์ฝ๊ธฐ ๊ณ ๋ ค "local"์™€ ์“ฐ๊ธฐ ๊ณ ๋ ค "majority"์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.

โŒ ์ž์ฒด ์“ฐ๊ธฐ ์ฝ๊ธฐ โŒ ๋‹จ์กฐ์  ์ฝ๊ธฐ โœ… ๋‹จ์กฐ์  ์“ฐ๊ธฐ โŒ ์ฝ๊ธฐ ํ›„ ์“ฐ๊ธฐ

์ด ์กฐํ•ฉ์€ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋„ค ๊ฐ€์ง€ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ ๋ณด์žฅ์„ ๋ชจ๋‘ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ชจ๋“  ์ƒํ™ฉ์—์„œ ๋ฐ˜๋“œ์‹œ ๊ทธ๋Ÿฐ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์‹œ๋‚˜๋ฆฌ์˜ค 6(์ฝ๊ธฐ ๊ณ ๋ ค '๋กœ์ปฌ' ๋ฐ ์“ฐ๊ธฐ ๊ณ ๋ ค '๋Œ€๋‹ค์ˆ˜')

์ด ์ผ์‹œ์ ์ธ ๊ธฐ๊ฐ„ ๋™์•ˆ์—๋Š” P ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ๋งŒ์ด { w: "majority" } ์“ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ํ†ตํ•ด ์“ฐ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ ์„ธ์…˜์—์„œ ๋‹ค์Œ ์ž‘์—… ์ˆœ์„œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ธ๊ณผ์ ์œผ๋กœ ์ผ๊ด€๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

์‹œํ€€์Šค
์˜ˆ์‹œ
1. Write 1 with write concern "majority" to P new
2. Read 1 with read concern "local" to S 1
3. Write 2 with write concern "majority" to P new

4. 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 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€ ์•Š๋Š” S 1์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.

โŒ ๋‹จ์กฐ์  ์ฝ๊ธฐ์ž…๋‹ˆ๋‹ค.

์ฝ๊ธฐ 2๋Š” ์ฝ๊ธฐ 1 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€ ์•Š๋Š” S 3์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค(์ฆ‰, ์ด์ „ ์ƒํƒœ๋Š” ์ฝ๊ธฐ 1์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€ ์•Š์Œ).

โœ… ๋‹จ์กฐ์  ์“ฐ๊ธฐ

์“ฐ๊ธฐ๋Š” 2 ์“ฐ๊ธฐ ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” 1 P ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

โŒ ์ฝ๊ธฐ ํ›„ ์“ฐ๊ธฐ

์“ฐ๊ธฐ 2๋Š” ์ฝ๊ธฐ 1 ์ดํ›„์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€ ์•Š๋Š” P ์‹ ๊ทœ์— ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค(์ฆ‰, ์ด์ „ ์ƒํƒœ๋Š” ์ฝ๊ธฐ 1์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€ ์•Š์Œ).

๋Œ์•„๊ฐ€๊ธฐ

์ฝ๊ธฐ ๊ฒฉ๋ฆฌ, ์ผ๊ด€์„ฑ ๋ฐ ์ตœ์‹ ์„ฑ