[Qdrant] ๋ถ์ฐ DB ๊ตฌ์ฑ
Qdrant๋ ์์ฒด์ ์ผ๋ก Raft ๊ธฐ๋ฐ์ ๋ถ์ฐ์์คํ
์ ์ ๊ณตํ๋ค.
์ด๋ฅผ ํตํด ๋ฉํฐ๋
ธ๋, ๋ฉํฐ์ค๋ ๊ธฐ๋ฐ์ ์ํ ์ฒ๋ฆฌ๋ ํ์ฅ, ๊ณ ๊ฐ์ฉ์ฑ ๋ณด์ฅ ๋ฑ์ ๊ฐ์ ธ๊ฐ ์ ์๋ค.
๊ณ ๊ฐ์ฉ์ฑ์ด ๊ฐ์ฅ ์ค์ํ๋ค๋ฉด ๊ถ์ฅ๋๋ ์ฌ์ฉ ํํ๋, ์ต์ 3 ๋ ธ๋ ํด๋ฌ์คํฐ์ ๋ ํ๋ฆฌ์นด๋ 2๊ฐ ์ด์์ผ๋ก ๋๋ ๊ฒ์ด๋ค. ์ด ๊ฒฝ์ฐ์๋ ๋ ธ๋ ํ๋๊ฐ ์ฃฝ์ด๋ฒ๋ ค๊ณ ์ค๋จ ์์ด ์ฌ์ฉํ ์ ์๋ค.
Docker๋ก ๊ตฌ์ฑํด๋ณด๊ธฐ (Docker compose)
docker compose๋ฅผ ํตํด์ ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ ํ๋ฒ ๋ง๋ค์ด๋ณด์.
์ผ๋จ, master ์ญํ ์ ํ ์ฒซ๋ฒ์งธ DB ๋
ธ๋๊ฐ ํ์ํ๋ค.
์ดํ์ ๋ฐ๋ ์๋ ์์ผ๋, ์ฒ์ ์์ํ๋๊ฒ ์ฒซ๋ฒ์งธ ๋ง์คํฐ๊ฐ ๋๋ค.
7333 ํฌํธ๋ก ์ด๊ณ , CLUSTER ์ต์
์ผ๊ณ , ์คํํ ๋ ํ๋๊ทธ๋ ๋ฃ์ด์ค์ผ ํ๋ค.
uri ํ๋๊ทธ๋ก ์๊ธฐ ์์ ์๊ฒ ๋๋ฌํ ์ ์๋ ๊ฒฝ๋ก๋ฅผ ๋ช
์ํด์ค๋ค.
๊ทธ๋ผ
ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ด ํ์ฑํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด๋ ๊ฒ ์ฒซ๋ฒ์งธ๋ก ๊ตฌ์ฑํ ๊ฒ์ด ์๋์ผ๋ก Leader(master) ๋
ธ๋๊ฐ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ฌ๋ ํผ์ด๊ฐ ํ๋๋ง ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ ๊ธฐ์ ํ๋์ฉ ๋ถ์ฌ๋๊ฐ๋ ๊ฒ์ด๋ค.
2๋ฒ์งธ ๋ ธ๋๋ฅผ ๋์๋ณด์.
์ค์ ์ด ํฌ๊ฒ ๋ค๋ฅผ ๊ฒ์ ์์ผ๋, --bootstrap ํ๋๊ทธ๋ฅผ ํตํด์ ์ฐ๊ฒฐํ ์ค์ฌ ๋
ธ๋๋ฅผ ์ง์ ํด์ค์ผ ํ๋ค.
๊ทธ๋ฆฌ๊ณ uri ํ๋๊ทธ๋ฅผ ํตํด ์๊ธฐ ์์ ์ ์ง์
์ ์ ๋ช
์ํด์ฃผ๋ ๊ฒ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์ํ๋ค.
์คํํด๋ณด๋ฉด
์ด์ ๋ฉ์ธ ๋
ธ๋์ ํผ์ด ๋ชฉ๋ก์ ๋จ๋ ๊ฒ์ ๋ณผ ์ ์๊ณ
๋ฐฉ๊ธ ์ถ๊ฐํ 2๋ฒ์งธ ๋
ธ๋๋ Follower(slave)๋ก ์ฐธ์ฌํ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด๊ฒ๋ leader ๋
ธ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ง์ read/write๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค.
์ดํ๋ก ๋ ธ๋๋ฅผ ๋ ์ถ๊ฐํ๋๋ผ๋, ๋ฐฉ๋ฒ์ ๋ฌ๋ผ์ง์ง ์๋๋ค.

๋ถํธ์คํธ๋ฉ ๋ฃ๊ณ , uri ๋ฃ์ด์ ๋ณ๋ ฌ์ ์ผ๋ก ๊ณ์ ์ด์ด๋ถ์ด๋ฉด ๋๋ ๊ฒ์ด๋ค.

์๋ Leader ์ ์ถ
๊ทธ๋ผ ์ด์ ๋
ธ๋ ์ฌ๋ง์ ๋ฐ๋ฅธ ํ๋ณต์ด ์ ๋๋์ง ๋ณด์.
Follower๊ฐ ์ฃฝ๋ ๊ฒ๋ ๊ทธ๋ ์ง๋ง, ์ฌ์ค ์ค์ํ๊ฑด Leader๊ฐ ์ฃฝ๋ ์ต์
์ ์ฌํ๋ค.
Leader๋ฅผ ํ๋ฒ ์ฃฝ์ฌ๋ณด๋ฉด

๋๋จธ์ง 2๊ฐ์ ๋
ธ๋๊ฐ ์คํจํ๋ค๊ณ ๋๋ฆฌ์น๋ค๊ฐ
์๊ธฐ๋ค ์ค์์ ์๋ก์ด ํ๋ณด๋ฅผ Leader๋ก ์ ์ถํ๋ค.
๋ง์ฝ ๊ธฐ์กด Leader ๋
ธ๋๊ฐ ๋ค์ ๋ ์๋๋๋ผ๋, Leader์ ์ง์๋ฅผ ๋์ฐพ์ง ๋ชปํ๋ค.
์ด๋ ๊ฒ ์ํฉ์ ๋ฐ๋ผ Leader๊ฐ ๋ฐ๋ ์ ์๊ธฐ ๋๋ฌธ์, ๋จ์ผ ์๋ํฌ์ธํธ๋ก ์ฌ์ฉํด์๋ ์๋๋ค.
์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋ ํด๋ฌ์คํฐ๋ผ๋ฉด ์ด ์ฌ๋ฌ๊ฐ์ ๋
ธ๋๋ฅผ ๋จ์ผ ์๋ํฌ์ธํธ๋ก ์ ๊ทผํ ์ ์๋ ํ๊ฒฝ์ ๋ง๋ค์ด๋ฌ์ผ ํ๋ค.
๋๋ถ๋ถ์ managed cluster ํ๊ฒฝ๋ค์ด ๊ทธ๋ ๊ธฐ๋ ํ๊ณ .
ํ
์คํธ์ ์ฌ์ฉํ docker compose ๊ตฌ์ฑ์ github์ ์๋ค.
https://github.com/myyrakle/docker-compose/blob/master/qdrant-cluster/docker-compose.yml
์ค๋์ Replica
qdrant๋ elasticsearch ๊ฐ์ ๋ฉํฐ๋ ธ๋ DB๋ค๊ณผ ๋๋ฑํ๊ฒ, ํฐ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ ธ๋์ ์ชผ๊ฐ์ ์ ์ฅํ๋ ์ค๋(partition), ๋์ผ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ ธ๋์ ๋ณต์ ํด์ ๋ฐฑ์ ํ๋ ๋ ํ๋ฆฌ์นด(replica)๋ฅผ ๋ชจ๋ ์ง์ํ๋ค.
์ค๋๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ ์ดํ ํฌ์คํธ์์ ๋ค๋ค๋ณธ๋ค.
์ฐธ์กฐ
https://qdrant.tech/documentation/guides/distributed_deployment
https://qdrant.tech/documentation/guides/configuration/
https://medium.com/@vardhanam.daga/distributed-deployment-of-qdrant-cluster-with-sharding-replicas-e7923d483ebc