๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ DBMS Nebula Graph์˜ ์ฒซ ๋ฒˆ์งธ ์•ˆ์ • ๋ฒ„์ „ ์ถœ์‹œ

์ผ์–ด๋‚ฌ๋‹ค ์˜คํ”ˆ DBMS ์ถœ์‹œ ์„ฑ์šด ๊ทธ๋ž˜ํ”„ 1.0.0๋Š” ์ˆ˜์‹ญ์–ต ๊ฐœ์˜ ๋…ธ๋“œ์™€ ์ˆ˜์กฐ ๊ฐœ์˜ ์—ฐ๊ฒฐ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ํ˜•์„ฑํ•˜๋Š” ์ƒํ˜ธ ์—ฐ๊ฒฐ๋œ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” C++๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ๋ฐฐํฌ์ž Apache 2.0์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. DBMS์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Go, Python, Java ์–ธ์–ด์šฉ์œผ๋กœ ์ค€๋น„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉฐ์น  ์ „ DBMS ๊ฐœ๋ฐœ ์Šคํƒ€ํŠธ์—… VESoft ๋ฐ›์€ 8๋ฐฑ๋งŒ ๋‹ฌ๋Ÿฌ ๊ทœ๋ชจ์˜ ์ฒซ ๋ฒˆ์งธ ํˆฌ์ž ํŠธ๋žœ์น˜์ž…๋‹ˆ๋‹ค.

DBMS์—์„œ ์ ์šฉ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•˜์ง€ ์•Š๋Š” ๋ถ„์‚ฐ ์•„ํ‚คํ…์ฒ˜(๋น„๊ณต์œ )๋Š” ๋…๋ฆฝ์ ์ด๊ณ  ์ž๊ธ‰์ž์กฑํ•˜๋Š” ๊ทธ๋ž˜ํ”„ ์š”์ฒญ ์ฒ˜๋ฆฌ ํ”„๋กœ์„ธ์Šค ๋ฐ ์ €์žฅ ์Šคํ† ๋ฆฌ์ง€ ํ”„๋กœ์„ธ์Šค์˜ ์‹œ์ž‘์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ์„œ๋น„์Šค๋Š” ๋ฐ์ดํ„ฐ ์ด๋™์„ ์กฐ์œจํ•˜๊ณ  ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•œ ๋ฉ”ํƒ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋—๋ชฉ.

๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ DBMS Nebula Graph์˜ ์ฒซ ๋ฒˆ์งธ ์•ˆ์ • ๋ฒ„์ „ ์ถœ์‹œ

์„ฑ์šด ๊ทธ๋ž˜ํ”„์˜ ์ฃผ์š” ๊ธฐ๋Šฅ:

  • ์ œ๊ณต ๋ณด์•ˆ ์—ญํ•  ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด(RBAC) ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๊ถŒํ•œ์ด ์„ค์ •๋œ ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐํšŒ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ฟผ๋ฆฌ ์ƒ์„ฑ ์–ธ์–ด ํ™•์žฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ธ ๋•Œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ~์— ํ…Œ์ŠคํŠธ 632์–ต ๊ฐœ์˜ ๋ฒ„ํ…์Šค์™€ 1.2์–ต ๊ฐœ์˜ ์—ฃ์ง€๋กœ ๊ตฌ์„ฑ๋œ ๊ฐ€ํ”„๋ฅผ ํฌํ•จํ•˜์—ฌ ํฌ๊ธฐ๊ฐ€ 8.4GB์ธ ๊ทธ๋ž˜ํ”„ ๋…ธ๋“œ 140๊ฐœ์™€ ์ €์žฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋…ธ๋“œ XNUMX๊ฐœ๋กœ ๊ตฌ์„ฑ๋œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์€ ์ˆ˜ ๋ฐ€๋ฆฌ์ดˆ ์ˆ˜์ค€์ด์—ˆ๊ณ  ์ฒ˜๋ฆฌ๋Ÿ‰์€ ์ดˆ๋‹น ์ตœ๋Œ€ XNUMX๋งŒ ๊ฑด์˜ ์š”์ฒญ์ด์—ˆ์Šต๋‹ˆ๋‹ค. .

    ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ DBMS Nebula Graph์˜ ์ฒซ ๋ฒˆ์งธ ์•ˆ์ • ๋ฒ„์ „ ์ถœ์‹œ

  • ์„ ํ˜• ํ™•์žฅ์„ฑ.
  • ๊ฐ•๋ ฅํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด SQL๊ณผ ์œ ์‚ฌํ•œ ์ฟผ๋ฆฌ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” ์ž‘์—…์—๋Š” GO(๊ทธ๋ž˜ํ”„ ์ •์ ์˜ ์–‘๋ฐฉํ–ฅ ์ˆœํšŒ), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE(์ด์ „ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ ์‚ฌ์šฉ)๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ธ๋ฑ์Šค์™€ ์‚ฌ์šฉ์ž ์ •์˜ ๋ณ€์ˆ˜๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
  • ๊ณ ๊ฐ€์šฉ์„ฑ๊ณผ ์žฅ์• ์— ๋Œ€ํ•œ ๋ณต์›๋ ฅ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐฑ์—… ๋ณต์‚ฌ๋ณธ ์ƒ์„ฑ์„ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ ์กฐ๊ฐ์œผ๋กœ ์Šค๋ƒ…์ƒท ์ƒ์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฐ์—…์šฉ์œผ๋กœ ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค(์ด๋ฏธ JD, Meituan ๋ฐ Xiaohongshu์˜ ์ธํ”„๋ผ์—์„œ ์‚ฌ์šฉ๋จ).
  • ์ง„ํ–‰ ์ค‘์ธ ์ž‘์—…์„ ์ค‘๋‹จํ•˜๊ฑฐ๋‚˜ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ ์ €์žฅ ์ฒด๊ณ„๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์ˆ˜๋ช…์„ ์ œํ•œํ•˜๋Š” TTL ์ง€์›.
  • ์„ค์ • ๋ฐ ์Šคํ† ๋ฆฌ์ง€ ํ˜ธ์ŠคํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค.
  • ์ž‘์—…์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ž‘์—… ์‹œ์ž‘์„ ์˜ˆ์•ฝํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ(ํ˜„์žฌ ์ง€์›๋˜๋Š” ์ž‘์—… ์ค‘ COMPACT ๋ฐ FLUSH)
  • ์ฃผ์–ด์ง„ ์ •์  ์‚ฌ์ด์˜ ์ „์ฒด ๊ฒฝ๋กœ์™€ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.
  • ํƒ€์‚ฌ ๋ถ„์„ ํ”Œ๋žซํผ๊ณผ์˜ ํ†ตํ•ฉ์„ ์œ„ํ•œ OLAP ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.
  • CSV ํŒŒ์ผ ๋˜๋Š” Spark์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค.
  • Prometheus ๋ฐ Grafana๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ธก์ •ํ•ญ๋ชฉ์„ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
  • ์›น ์ธํ„ฐํŽ˜์ด์Šค
    ์„ฑ์šด ๊ทธ๋ž˜ํ”„ ์ŠคํŠœ๋””์˜ค ๊ทธ๋ž˜ํ”„ ์ž‘์—… ์‹œ๊ฐํ™”, ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰, ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋กœ๋”ฉ ๊ตฌ์„ฑํ‘œ ์„ค๊ณ„์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ DBMS Nebula Graph์˜ ์ฒซ ๋ฒˆ์งธ ์•ˆ์ • ๋ฒ„์ „ ์ถœ์‹œ

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€