
์ค์ ์ค์ฌ์ LogDevice ์ํคํ ์ฒ ์ดํด์ ํ์ฉ๋ฒ
๋ชจ๋ ๋ฐฑ์๋ ์ํคํ
์ฒ์์ ๋ก๊ทธ๋ ๋จ์ํ ๋๋ฒ๊น
๋๊ตฌ๊ฐ ์๋๋๋ค.
๋ฐ์ดํฐ ๋ณต์ , ๋ฉ์์ง ํ, ์ด๋ฒคํธ ์์ฑ, CDC ๋ฑ ํต์ฌ ๊ธฐ๋ฅ์ ๊ธฐ๋ฐ์ด์ฃ .
Kafka๊ฐ ์ฌ์ค์ ์
๊ณ ํ์ค์ด์ง๋ง,
Facebook(๋ฉํ)์ ์ Kafka ๋์ LogDevice๋ผ๋ ์์ฒด ์์คํ
์ ๊ฐ๋ฐํ์๊น์?
์ด ๊ธ์์๋ LogDevice์ ์ค๊ณ ์ฒ ํ, ์ํคํ ์ฒ, ๊ทธ๋ฆฌ๊ณ ์ค์ ํ์ฉ ํฌ์ธํธ๋ฅผ ๊น์ด ์๊ฒ ์ดํด๋ด ๋๋ค.
LogDevice๋ Facebook์ด ๋ง๋ ๊ณ ์ฑ๋ฅ ๋ถ์ฐ ๋ก๊ทธ ์ ์ฅ์์ ๋๋ค.
| ํญ๋ชฉ | Kafka | LogDevice |
|---|---|---|
| ๋จ์ | Topic + Partition | Log (ID ๊ธฐ๋ฐ stream) |
| Offset ์ ์ฅ | Broker (Zookeeper ๋ฑ) | Client ๊ด๋ฆฌ |
| Retention | ์๊ฐ/์ฉ๋ ๊ธฐ์ค | Trim point ๊ธฐ๋ฐ |
| Storage ๊ตฌ์กฐ | Segment ํ์ผ | Copyset + WAL |
| ํ์ฅ ๋ฐฉ์ | Partition ์ ์ฆ๊ฐ | ๋ก๊ทธ ID ์ํ ํ์ฅ |
LogDevice๋ ๋๊ท๋ชจ ํ๊ฒฝ์์ partition ๊ด๋ฆฌ ์์ด ์ํ ํ์ฅ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ฐ๊ธฐ ๊ฒฝ๋ก์ ์ ์ฅ ๊ฒฝ๋ก๋ฅผ ๋ถ๋ฆฌํจ์ผ๋ก์จ ๋ณ๋ชฉ์ ์ค์ด๊ณ ํ์ฅ์ฑ์ ํ๋ณดํฉ๋๋ค.
Kafka์ ISR๋ณด๋ค ํจ์จ์ ์ธ ๋ณต์ ๋ชจ๋ธ์ ๋๋ค.
trim point๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ก๊ทธ๊ฐ ์ญ์ ๋ฉ๋๋ค.Kafka์ ๋ฒ์ฉ์ฑ๋ณด๋ค๋ ํน์ ๊ท๋ชจ์ ์๋๋ฆฌ์ค์ ์ต์ ํ๋ ๋์์ ๋๋ค.
| ํน์ง | ์ค๋ช |
|---|---|
| ์ ์ฐ์ฑ | ๋ก๊ทธ ๋จ์, ๋ณต์ ๋ฐฉ์, ์๋น์ ๋ชจ๋ธ์ด ์ ์ฐ |
| ํ์ฅ์ฑ | ์๋ฐฑ๋ง ๊ฐ์ ๋ก๊ทธ ์คํธ๋ฆผ๋ ๋ฌด๋ฆฌ ์์ด ์ฒ๋ฆฌ |
| ์ค์ฉ์ฑ | ๋ฉ์์ง ํ๋ณด๋ค๋ ๋ก๊ทธ ์ ์ฅ/๋ณต์ ์ ์ต์ ํ |
LogDevice๋ ๋ก๊ทธ๋ฅผ ์ผ๋ฑ ์๋ฏผ์ผ๋ก ๋ค๋ฃจ๋ ์์คํ ์์ ํฐ ์ฅ์ ์ ๋ฐํํฉ๋๋ค.
๊ถ๊ธํ ์ ์ด ์๊ฑฐ๋ ์ค๋ฌด ๋์
๊ฒฝํ์ด ์๋ค๋ฉด ๋๊ธ๋ก ๋๋ ์ฃผ์ธ์! ๐
Kafka๋ง ์๊ณ ์๋ค๋ฉด, LogDevice๋ ํ๋ฒ ํํํด๋ณด์ธ์!