DBMS ArangoDB 3.6์˜ ์ƒˆ ๋ฒ„์ „

๊ฒŒ์‹œ ๋จ ๋‹ค๋ชฉ์  DBMS ์ถœ์‹œ ์•„๋ž‘๊ณ DB 3.6๋Š” ๋ฌธ์„œ, ๊ทธ๋ž˜ํ”„ ๋ฐ ํ‚ค-๊ฐ’ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์œ ์—ฐํ•œ ์ €์žฅ ๋ชจ๋ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์€ SQL๊ณผ ์œ ์‚ฌํ•œ ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. AQL ๋˜๋Š” JavaScript์˜ ํŠน์ˆ˜ ํ™•์žฅ์„ ํ†ตํ•ด. ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ๋ฒ•์€ ACID(Atomicity, Consistency, Isolation, Durability)๋ฅผ ์ค€์ˆ˜ํ•˜๊ณ  ํŠธ๋žœ์žญ์…˜์„ ์ง€์›ํ•˜๋ฉฐ ์ˆ˜ํ‰ ๋ฐ ์ˆ˜์ง ํ™•์žฅ์„ฑ์„ ๋ชจ๋‘ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. DBMS๋Š” ์›น ์ธํ„ฐํŽ˜์ด์Šค๋‚˜ ์ฝ˜์†” ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž‘๊ณ SH. ์•„๋ž‘๊ณ DB ์ฝ”๋“œ ๋ฐฐํฌ์ž Apache 2์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋Š” C ๋ฐ JavaScript๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ArangoDB์˜ ์ฃผ์š” ๊ธฐ๋Šฅ:

  • ๋ฐ์ดํ„ฐ ์ €์žฅ ์Šคํ‚ค๋งˆ๋ฅผ ์ •์˜ํ•˜์ง€ ์•Š๊ณ  ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ(์Šคํ‚ค๋งˆ ์—†์Œ) - ๋ฐ์ดํ„ฐ๋Š” ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฐ ์ •๋ณด๊ฐ€ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ์™€ ๋ถ„๋ฆฌ๋œ ๋ฌธ์„œ ํ˜•์‹์œผ๋กœ ๊ตฌ์กฐํ™”๋ฉ๋‹ˆ๋‹ค.
  • REST/Web API๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๊ณผ ํ•จ๊ป˜ JavaScript์—์„œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ ์„œ๋ฒ„๋กœ ArangoDB๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ € ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ DBMS ์ธก์—์„œ ์‹คํ–‰๋˜๋Š” ํ•ธ๋“ค๋Ÿฌ์— JavaScript๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  CPU ์ฝ”์–ด์— ๋กœ๋“œ๋ฅผ ๋ถ„์‚ฐ์‹œํ‚ค๋Š” ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ์•„ํ‚คํ…์ฒ˜.
  • ๋ ˆ์ฝ”๋“œ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š” ํ‚ค-๊ฐ’ ์Œ, ๋ฌธ์„œ ๋ฐ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ชจ๋ธ(๊ทธ๋ž˜ํ”„ ๊ผญ์ง€์ ์„ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ ์ œ๊ณต)
  • ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํ‘œํ˜„ ๋ชจ๋ธ(๋ฌธ์„œ, ๊ทธ๋ž˜ํ”„ ๋ฐ ํ‚ค-๊ฐ’ ์Œ)์„ ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ์— ํ˜ผํ•ฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๊ธฐ์ข… ๋ฐ์ดํ„ฐ์˜ ์ง‘๊ณ„๊ฐ€ ๋‹จ์ˆœํ™”๋ฉ๋‹ˆ๋‹ค.
  • ๋ณ‘ํ•ฉ ์ฟผ๋ฆฌ(JOIN) ์ง€์›
  • ํ•ด๊ฒฐ ์ค‘์ธ ์ž‘์—…์— ํ•ด๋‹นํ•˜๋Š” ์ƒ‰์ธ โ€‹โ€‹์œ ํ˜•์„ ์„ ํƒํ•˜๋Š” ๊ธฐ๋Šฅ(์˜ˆ: ์ „์ฒด ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์— ์ƒ‰์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ)
  • ์‚ฌ์šฉ์ž ์ •์˜ ๊ฐ€๋Šฅํ•œ ์•ˆ์ •์„ฑ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด์—์„œ ๋” ์ค‘์š”ํ•œ ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋” ๋†’์€ ์•ˆ์ •์„ฑ ๋˜๋Š” ๋” ๋†’์€ ์„ฑ๋Šฅ;
  • ์ตœ์‹  ํ•˜๋“œ์›จ์–ด(SSD ๋“ฑ)๋ฅผ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๊ณ  ๋Œ€์šฉ๋Ÿ‰ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํšจ์œจ์ ์ธ ์Šคํ† ๋ฆฌ์ง€์ž…๋‹ˆ๋‹ค.
  • ํŠธ๋žœ์žญ์…˜: ์„ ํƒ์ ์ธ ํŠธ๋žœ์žญ์…˜ ์ผ๊ด€์„ฑ ๋ฐ ๊ฒฉ๋ฆฌ๋ฅผ ํ†ตํ•ด ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๋ฌธ์„œ ๋˜๋Š” ์ปฌ๋ ‰์…˜์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
  • ๋ณต์ œ ๋ฐ ์ƒค๋”ฉ ์ง€์›: ๋งˆ์Šคํ„ฐ-์Šฌ๋ ˆ์ด๋ธŒ ๊ตฌ์„ฑ์„ ์ƒ์„ฑํ•˜๊ณ  ํŠน์ • ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ๋‹ค๋ฅธ ์„œ๋ฒ„์— ๋ฐฐํฌํ•˜๋Š” ๊ธฐ๋Šฅ
  • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด JavaScript ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. Foxx, ๋ฐ์ดํ„ฐ์— ์ง์ ‘ ์•ก์„ธ์Šคํ•˜์—ฌ DBMS ์„œ๋ฒ„ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ์‚ฌํ•ญArangoDB 3.6 ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ์•ˆ๋จ:

  • UPDATE ๋ฐ REPLACE ์ž‘์—…๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•˜์œ„ ์ฟผ๋ฆฌ์˜ ์„ฑ๋Šฅ๋„ ์ตœ์ ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • AQL ์ฟผ๋ฆฌ ์‹คํ–‰์„ ๋ณ‘๋ ฌํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์–ด ์—ฌ๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ์— ๋ถ„์‚ฐ๋œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ผ๋ถ€ ์ƒํ™ฉ์—์„œ๋Š” ๊ด€๋ จ ์—†๋Š” ๋ฌธ์„œ๋ฅผ ์™„์ „ํžˆ ๊ฒ€์ƒ‰ํ•  ํ•„์š”๊ฐ€ ์—†๋„๋ก ํ•˜๋Š” ๋ฌธ์„œ์˜ ์ง€์—ฐ๋œ ๊ตฌ์ฒดํ™”๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฌธ์„œ๋ฅผ ์Šค์บ”ํ•  ๋•Œ ์ง€์ •๋œ ํ•„ํ„ฐ์™€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์„œ๋Š” ์กฐ๊ธฐ์— ํ๊ธฐ๋ฉ๋‹ˆ๋‹ค.
  • ArangoSearch ์ „์ฒด ํ…์ŠคํŠธ ๊ฒ€์ƒ‰ ์—”์ง„์ด ๊ฐœ์„ ๋˜์–ด ๋ฐ์ดํ„ฐ ์œ ์‚ฌ์„ฑ์— ๋”ฐ๋ฅธ ์ˆœ์œ„ ์ง€์ •์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ ์ž๋™ ์™„์„ฑ์„ ์œ„ํ•œ ๋ถ„์„๊ธฐ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ๊ณ , ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ TOKENS() ๋ฐ PHRASE() ํ•จ์ˆ˜๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ฟผ๋ฆฌ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์„ ํƒ์ ์œผ๋กœ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•ด maxRuntime ์„ค์ •์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ฟผ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ํŠน์ • ์ตœ์ ํ™”์˜ ํ™œ์„ฑํ™”๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด โ€œโ€”query.optimizer-rulesโ€ ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํด๋Ÿฌ์Šคํ„ฐ ์šด์˜์„ ์กฐ์งํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋…ธ๋“œ์— ๋Œ€ํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ชจ๋“œ๋ฅผ ์„ ํƒํ•˜๋Š” ์˜ต์…˜ "-cluster.upgrade"๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹  ์ฑ„๋„์„ ์•”ํ˜ธํ™”ํ•˜๊ธฐ ์œ„ํ•ด TLS 1.3์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๊ธฐ๋ณธ์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๋Š” TLS 1.2๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•จ).

์ถœ์ฒ˜ : opennet.ru

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