์š”์•ฝ ์ •๋ฆฌ


๋ถ„์‚ฐ ํ•ฉ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Consensus Algorithms)

๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์—ฌ๋Ÿฌ ๋…ธ๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ๊ฐ’์„ ํ•ฉ์˜(Consensus) ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ž…๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŠน์ง• ์žฅ์  ๋‹จ์ 
Paxos Leslie Lamport ์ œ์•ˆ
์ตœ์ดˆ์˜ ์ด๋ก ์  ํ•ฉ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ์ ์œผ๋กœ ์•ˆ์ „์„ฑ ๋ณด์žฅ ๊ตฌํ˜„ ๋ณต์žก
์ดํ•ด ์–ด๋ ต๊ณ  ๋””๋ฒ„๊น… ํž˜๋“ฆ
Multi-Paxos Paxos์˜ ์ตœ์ ํ™” ๋ฒ„์ „
๋ฆฌ๋” ๊ธฐ๋ฐ˜ ์—ฐ์† ํ•ฉ์˜ Paxos๋ณด๋‹ค ์‹ค์šฉ์  ์—ฌ์ „ํžˆ ๊ตฌํ˜„ ๋‚œ์ด๋„ ๋†’์Œ
Raft Paxos ๋Œ€์•ˆ์œผ๋กœ ๊ฐœ๋ฐœ
๋ฆฌ๋” ์„ ์ถœ, ๋กœ๊ทธ ๋ณต์ œ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌ ์ดํ•ด ์‰ฝ๊ณ  ๊ตฌํ˜„ ์šฉ์ด
๊ต์œก์šฉ์œผ๋กœ๋„ ์ ํ•ฉ Paxos๋ณด๋‹ค ์ด๋ก ์ ์œผ๋กœ ๋œ ์ •ํ˜•ํ™”
Viewstamped Replication Paxos์™€ ์œ ์‚ฌ
๋ฆฌ๋” ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณต์ œ ์ˆ˜ํ–‰ ์•ˆ์ •์„ฑ, ๊ฒฌ๊ณ ํ•จ ์ƒ๋Œ€์ ์œผ๋กœ ์•Œ๋ ค์ง€์ง€ ์•Š์Œ
Zab (Zookeeper Atomic Broadcast) Zookeeper์—์„œ ์‚ฌ์šฉ
๋ฆฌ๋” ๊ธฐ๋ฐ˜ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ํ”„๋กœํ† ์ฝœ ์‹ค์šฉ์„ฑ ๋†’์Œ, Zookeeper์— ์ตœ์ ํ™” ๋ฒ”์šฉ ํ•ฉ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ๋Š” ํ•œ๊ณ„

๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜

์›์ž์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŠน์ง•
2PC (Two-Phase Commit) Coordinator๊ฐ€ Prepare โ†’ Commit ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ  ํ•ฉ์˜
๋„คํŠธ์›Œํฌ ์žฅ์•  ์‹œ block ๊ฐ€๋Šฅ
3PC (Three-Phase Commit) 2PC์— ํƒ€์ž„์•„์›ƒ๊ณผ ์ค‘๊ฐ„ ์ƒํƒœ ์ถ”๊ฐ€
non-blocking, ํ•˜์ง€๋งŒ ๋” ๋ณต์žก