[Qdrant] ์ค๋ (Shard)
์ด์ ํฌ์คํธ
https://blog.naver.com/sssang97/223984676160
๋ถ์ฐ DB ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ ๊ฒฝ์ฐ์๋, ์ค๋์ ๋ ํ๋ฆฌ์นด๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ค์ํ ์ง์ ์ด ๋๋ค.
์ข ํท๊ฐ๋ฆด ์ ์๋๋ฐ, ์ค๋๋ ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋์ ๋
ธ๋์ ๋ถ์ฐํด์ ์ ์ฅํ๋ ๊ฒ์ ๋งํ๊ณ , ๋ ํ๋ฆฌ์นด๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋
ธ๋์ ๋ณต์ ํด์ ์ผ์ข
์ ๋ฐฑ์
์ ํ๋ ๊ฒ์ ๋งํ๋ค.
์ค๋๋ ํํฐ์
์ด๋ผ๊ณ ๋ ํ๋ฉฐ, ์ ์ ์ผ๋ก ํฐ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ํธ๋ค๋งํ๊ธฐ ์ํ ์๋จ์ด๋ค.
์ฌ๊ธฐ์๋ ์ค๋๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ๋ง ์ ๋ฆฌํด๋ณธ๋ค.
Qdrant DB๋ 3๋ ธ๋ ํด๋ฌ์คํฐ๋ก ๊ตฌ์ฑ๋์ด์๋ค๊ณ ๊ฐ์ ํ๊ฒ ๋ค.

์๋ ์ค๋ ๊ตฌ์ฑ
๋ถ์ฐ ํด๋ฌ์คํฐ ๋ชจ๋์์๋ ๋ฐ๋ก ์ต์
์ ์ฃผ์ง ์๊ณ ์ปฌ๋ ์
์ ์์ฑํ๋๋ผ๋ ์ค๋๊ฐ ์๋์ผ๋ก ๊ตฌ์ฑ๋๋ค.
๋ฐ์ดํฐ์ ๋ถํฌ๋๋ฅผ ์์ธกํ ์ ์๊ณ , ํญ์ ์ ์ฒด ๋ฐ์ดํฐ์
๊ธฐ์ค์ผ๋ก dynamicํ ๊ฒ์๋ง์ ์ํํด์ผ ํ๋ค๋ฉด ๊ทธ๋ฅ ์๋ ์ค๋ฉ์ ์ฌ์ฉํด๋ ๋๋ค.
์ค๋์ ๊ฐ์๋ ์ปฌ๋ ์ ์์ฑ ์์ "shard_number"๋ก ์ง์ ํ ์ ์์ผ๋, ๊ธฐ๋ณธ๊ฐ์ ํ์ฌ ๋ ธ๋์ ๊ฐ์๋ค.
๊ทธ๋ฌ๋๊น ์ด ๊ฒฝ์ฐ์๋ ๊ทธ๋ฅ ๋ง๋ค์ด๋ 3๊ฐ์ ์ค๋๋ก ๋ถ์ฐ๋๊ฒ ๋๋ ์ ์ด๋ค.

๋ง๋ค๊ณ ๋ณด๋ฉด shard_number๊ฐ 3๊ฐ๋ก ์ค์ ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ปฌ๋ ์ ์ ํด๋ฌ์คํฐ ์ ๋ณด๋ฅผ ๋ณด๋ฉด
ํด๋น ์ปฌ๋ ์
์ด ์ค์ ๋ ์ค๋ ๋ชฉ๋ก์ ๋ ๋ณผ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ shard_id๋ฅผ ์ด์ฉํด์ ์ฌ์ธํ ์ ์ด๋ฅผ ํ ์๋ ์๋ค.
์ด ์ํ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ผ๋ฉด
๊ทธ๋ฌ๋ฉด qdrant๊ฐ ์๋์ผ๋ก ์์์ ํด์ฑํ๊ณ , ์ ์ ํ ์ค๋๋ฅผ ์ฐพ์์ ๊ฐ ๋
ธ๋์ ์ชผ๊ฐ์ ์ ์ฅํ๊ฒ ๋๋ค.
๊ทธ๋ผ ๊ฒ์ํ ๋๋ ๊ฐ ๋
ธ๋์ ๋ถ์ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฐพ์๊น?
์ด๊ฒ๋ ์ฌ์ค elasticsearch์ ์ ๊ทผ๋ฒ์ ๋น์ทํ๋ค.
query๋ฅผ ๋ฐ์ DB ๋
ธ๋๊ฐ coordinator๊ฐ ๋์ด์, ๋ค๋ฅธ ๋
ธ๋์์ ๋ฐ์ดํฐ๋ฅผ ๋ ํ์ํ ๋งํผ ๊ฐ์ ธ์จ๋ค.
์ด ๋จ๊ณ์์ ์ฌ์ฉ์๊ฐ ๊ณ ๋ คํ ๊ฒ์ ๋ฑํ ์๋ค.
์ค๋์ ๊ฐ์
์ค๋๋ ๋ ธ๋์ ๊ฐ์๋ณด๋ค ๋ง์๋ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก๋ ๋ ธ๋๋น 2๊ฐ์ ์ค๋๋ฅผ ์ก๋ ๊ฒ์ ๊ถ์ฅํ๋ค. ๋ ธ๋๊ฐ 3๊ฐ๋ฉด 6๊ฐ๋ก ์ก์๋ ๋๋ ๊ฒ์ด๋ค.
ํฅํ ํ์ฅ์ด ์์๋๋ค๋ฉด ํจ์ฌ ํฌ๊ฒ ์ก์๋ ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ดํ์ ์ฌ์ค๋ฉ์ ํ ํ์ ์์ด ํธํ๊ฒ ํ์ฅํ ์ ์๋ค.
์ปค์คํ ์ค๋ฉ (์๋ ํํฐ์ )
๊ทผ๋ฐ ์๋ ์ค๋ฉ์ ์ฐ๋ฉด ํธํ๊ธด ํ์ง๋ง, ์ฑ๋ฅ์ ์ผ๋ก ์กฐ์ ํ๊ธฐ ์ด๋ ค์ด ๋ถ๋ถ์ด ์๊ธด๋ค.
์์ํ๊ณ ์๋ ๋ฒ์์ ํน์ ๋ฐ์ดํฐ ๊ตฐ์ง์ ๋ฐ๋ณต์ ์ผ๋ก ์ ๊ทผํ๋ค๊ณ ํ๋ฉด, ๊ทธ ๊ตฐ์ง์ ์ค๋๋ณ๋ก ์ชผ๊ฐ๊ณ ๋งค๋ฒ ๋ฐ๋ก ์กฐํํ๋ ๊ฒ์ ์ง๋์น๊ฒ ๋นํจ์จ์ ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ฅผ ๋ค์ด, ํน์ ์ฑํ
๋ฐฉ ์์ ์๋ ์ฑํ
๋ฐ์ดํฐ๋ ํจ๊ป ์กฐํ๋๋ ๊ฒฝ์ฐ๊ฐ ๋งค์ฐ ๋ง์ ๊ฒ์ด๋ค.
์ด๋ด ๋๋ "์ฑํ
๋ฐฉ ID" ๊ฐ์ ๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ค ๋ฐ์ดํฐ๊ฐ ์ด๋ค ์ค๋์ ์ ์ฅ๋ ์ง๋ฅผ ์ง์ ์กฐ์ ํ ํ์๊ฐ ์๊ธด๋ค.
๊ทธ๋ฌ๋ฉด ๋ค๋ฅธ ํ๋์ ์ค๋๋ง ์กฐํํด๋ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฐ์ ธ์ฌ ์ ์๋ค.
ํ๋ฒ ์ค์ ํด๋ณด์.
์ปฌ๋ ์
์ ๋ง๋ค๋ ์ค๋ ๊ฐ์๋ฅผ 1๋ก ์ง์ ํ๊ณ , ์ค๋ฉ method๋ฅผ ์ปค์คํ
์ผ๋ก ์ง์ ํด์ผ ํ๋ค.

๊ทธ๋ฌ๋ฉด, ์๋ ์ค๋ฉ๋ชจ๋์๋ ๋ค๋ฅด๊ฒ ์ค๋ ๋ชฉ๋ก์ด ๊ธฐ๋ณธ์ผ๋ก ์๊ธฐ์ง๋ ์์ ๊ฒ์ด๋ค.
์ด๊ฑธ ์ด์ ์ฐ๋ฆฌ ํ์์ ๋ง๊ฒ ์ค์ ํด์ค์ผ ํ๋ค.

์ด๋ฐ ์์ผ๋ก ๋ง์ด๋ค.
๊ทธ๋ฌ๋ฉด ์ด์ ๋ถํฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ด๋ฃ์ ๋๋ง๋ค ์ ์ฅํ ์ค๋์ ํค๋ฅผ ์ ํด์ค์ผ ํ๋ค.
์ด์ ๋ ์ค๋ ํค ์์ด๋ ์ต์
๋ ์๋๋ค.
์ ๋นํ ์ง์ ํด์ ๋ฃ๊ณ
์ฟผ๋ฆฌ๋ฅผ ๋ ๋ ค๋ณด๋ฉด
๊ธฐ๋ณธ ๋์์ ๋ชจ๋ ์ค๋๋ฅผ ์ค์บํ๋ ๊ฒ์ด๋ค.
๊ทธ๋์ ์ง๊ธ์ ๊ฐ๋ณ ์ค๋์ ์กด์ฌํ๋ ๋ชจ๋ ๊ฐ์ ๊ฐ์ ธ์จ ๊ฒ์ ๋ณผ ์ ์๋ค.
ํน์ ์ค๋์ ์๋ ๋ฐ์ดํฐ๋ง ์กฐํํด๋ ๋๋ค๋ฉด, ์ฟผ๋ฆฌํ ๋๋ ์ค๋ ํค๋ฅผ ์ง์ ํ ์ ์๋ค.
๊ทธ๋ผ ๋ฑ ๊ทธ๊ฑฐ๋ง ๊ฐ์ ธ์จ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ฃผ์์ฌํญ: ์ปค์คํ ์ค๋ฉ
๋ค๋ฅธ ์ค๋์ ๋์ผํ point ID๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ์ง ์๋๋ค.
์ผ๋จ, ๋ค๋ฅธ ์ค๋๋ง๋ค ๋์ผํ point ID๋ฅผ ์์ฑํ๋ ๊ฒ์ด ํ์ฉ๋๊ธด ํ๋ค. ํ์ง๋ง ์ ์ฒด ์ค๋ ๋์์ผ๋ก ๊ฒ์ํ ๋๋ ํ์คํ์ง ์์ ๋ฐฉ์์ผ๋ก ์ค๋ณต์ด ์ ๊ฑฐ๋๋ค.
์ฐธ์กฐ
https://qdrant.tech/documentation/guides/distributed_deployment/#sharding