[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