Apache Ignite์˜ ๋ฐ์ดํ„ฐ ์••์ถ•. ์Šค๋ฒ ๋ฅด์˜ ๊ฒฝํ—˜

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

๋”ฐ๋ผ์„œ ์ง€์†์„ฑ ๋ชจ๋“œ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด ์บ์‹œ์˜ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด Ignite๊ฐ€ ๋””์Šคํฌ์— ์“ฐ๊ธฐ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

  1. ์บ์‹œ ๋‚ด์šฉ
  2. ๋ฏธ๋ฆฌ ์“ฐ๊ธฐ ๋กœ๊ทธ(์ดํ•˜ ๊ฐ„๋‹จํžˆ WAL)

WAL ์••์ถ•์ด๋ผ๋Š” WAL ์••์ถ• ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ๊ฝค ์˜ค๋žซ๋™์•ˆ ์กด์žฌํ•ด ์™”์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ ์ถœ์‹œ๋œ Apache Ignite 2.8์—๋Š” ๋””์Šคํฌ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ถ”๊ฐ€๋กœ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ ์ฝ˜ํ…์ธ ๋ฅผ ์••์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋””์Šคํฌ ํŽ˜์ด์ง€ ์••์ถ•๊ณผ ์ผ๋ถ€ WAL ํ•ญ๋ชฉ์„ ์••์ถ•ํ•˜๊ธฐ ์œ„ํ•œ WAL ํŽ˜์ด์ง€ ์Šค๋ƒ…์ƒท ์••์ถ•์ž…๋‹ˆ๋‹ค. ์ด ์„ธ ๊ฐ€์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋ชจ๋‘์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋””์Šคํฌ ํŽ˜์ด์ง€ ์••์ถ•

์ด๊ฑฐ ์–ด๋–ป๊ฒŒ ์ž‘๋™ ์‹œ์ผœ์š”

๋จผ์ € Ignite๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ €์žฅ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ํฌ๊ธฐ๋Š” ๋…ธ๋“œ ์‹œ์ž‘ ์‹œ ์„ค์ •๋˜๋ฉฐ ์ดํ›„ ๋‹จ๊ณ„์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํŽ˜์ด์ง€ ํฌ๊ธฐ๋Š” XNUMX์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ๊ณผ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ธ”๋ก ํฌ๊ธฐ์˜ ๋ฐฐ์ˆ˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๋Š” ํ•„์š”์— ๋”ฐ๋ผ ๋””์Šคํฌ์—์„œ RAM์œผ๋กœ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ๋””์Šคํฌ์˜ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ํ• ๋‹น๋œ RAM์˜ ์–‘์„ ์ดˆ๊ณผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RAM์— ๋””์Šคํฌ์—์„œ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•  ๊ณต๊ฐ„์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ค๋ž˜๋˜๊ณ  ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํŽ˜์ด์ง€๊ฐ€ RAM์—์„œ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๋””์Šคํฌ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค: ๊ฐ ์บ์‹œ ๊ทธ๋ฃน์˜ ๊ฐ ํŒŒํ‹ฐ์…˜์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๊ณ , ์ด ํŒŒ์ผ์—์„œ ํŽ˜์ด์ง€๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ ์ธ๋ฑ์Šค ์ˆœ์„œ๋กœ ์ฐจ๋ก€๋กœ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ „์ฒด ํŽ˜์ด์ง€ ์‹๋ณ„์ž์—๋Š” ํŒŒ์ผ์˜ ์บ์‹œ ๊ทธ๋ฃน ์‹๋ณ„์ž, ํŒŒํ‹ฐ์…˜ ๋ฒˆํ˜ธ ๋ฐ ํŽ˜์ด์ง€ ์ธ๋ฑ์Šค๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ „์ฒด ํŽ˜์ด์ง€ ์‹๋ณ„์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ํŒŒ์ผ๊ณผ ํŒŒ์ผ์˜ ์˜คํ”„์…‹์„ ๊ณ ์œ ํ•˜๊ฒŒ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Apache Ignite Wiki ๊ธฐ์‚ฌ์—์„œ ํŽ˜์ด์ง• ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Ignite Persistent Store - ๋‚ด๋ถ€์ ์œผ๋กœ.

์ด๋ฆ„์—์„œ ์ง์ž‘ํ•  ์ˆ˜ ์žˆ๋“ฏ์ด ๋””์Šคํฌ ํŽ˜์ด์ง€ ์••์ถ• ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ํŽ˜์ด์ง€ ์ˆ˜์ค€์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํ™œ์„ฑํ™”๋˜๋ฉด RAM์˜ ๋ฐ์ดํ„ฐ๋Š” ์••์ถ• ์—†์ด ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ์ฒ˜๋ฆฌ๋˜์ง€๋งŒ ํŽ˜์ด์ง€๊ฐ€ RAM์—์„œ ๋””์Šคํฌ๋กœ ์ €์žฅ๋˜๋ฉด ์••์ถ•๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ฐ ํŽ˜์ด์ง€๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ์••์ถ•ํ•˜๋Š” ๊ฒƒ์€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹ˆ๋ฉฐ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ์–ด๋–ป๊ฒŒ๋“  ์ค„์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ ๋” ์ด์ƒ ๊ณ ์ •๋˜์ง€ ์•Š์œผ๋ฉด ๋” ์ด์ƒ ํŒŒ์ผ์— ํŽ˜์ด์ง€๋ฅผ ์ฐจ๋ก€๋กœ ์“ธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • ํŽ˜์ด์ง€ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŒŒ์ผ์—์„œ ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ์œ„์น˜ํ•œ ์˜คํ”„์…‹์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ํŒŒ์ผ ๋์— ์žˆ์ง€ ์•Š๊ณ  ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋œ ํŽ˜์ด์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋“ค๋ฉด ํ™•๋ณด๋œ ๊ณต๊ฐ„๋„ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๋ฉด ํŒŒ์ผ์—์„œ ์ƒˆ ์œ„์น˜๋ฅผ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํŽ˜์ด์ง€๊ฐ€ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ธ”๋ก ํฌ๊ธฐ์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์•„๋‹Œ ๋ฐ”์ดํŠธ ์ˆ˜๋งŒํผ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ ํŽ˜์ด์ง€๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋ ค๋ฉด ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ธ”๋ก์„ ํ•˜๋‚˜ ๋” ํ„ฐ์น˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฒด ์ˆ˜์ค€์—์„œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด Apache Ignite์˜ ๋””์Šคํฌ ํŽ˜์ด์ง€ ์••์ถ•์€ ์ŠคํŒŒ์Šค ํŒŒ์ผ์ด๋ผ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํฌ์†Œ ํŒŒ์ผ์€ XNUMX์œผ๋กœ ์ฑ„์›Œ์ง„ ์ผ๋ถ€ ์˜์—ญ์„ "๊ตฌ๋ฉ"์œผ๋กœ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ํ™€์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ธ”๋ก์ด ํ• ๋‹น๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋””์Šคํฌ ๊ณต๊ฐ„์ด ์ ˆ์•ฝ๋ฉ๋‹ˆ๋‹ค.

ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ธ”๋ก์„ ํ•ด์ œํ•˜๋ ค๋ฉด ๊ตฌ๋ฉ์˜ ํฌ๊ธฐ๊ฐ€ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ธ”๋ก๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์•„์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ํŽ˜์ด์ง€ ํฌ๊ธฐ ๋ฐ Apache Ignite์— ์ถ”๊ฐ€ ์ œํ•œ์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋…ผ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ํฌ๊ธฐ๋Š” ๋ฐ˜๋“œ์‹œ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ธ”๋ก์˜ ํฌ๊ธฐ๋ณด๋‹ค ์ปค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ ๋ธ”๋ก ํฌ๊ธฐ์™€ ๊ฐ™์€ ๊ฒฝ์šฐ ๋‹จ์ผ ๋ธ”๋ก์„ ํ•ด์ œํ•˜๋ ค๋ฉด ์••์ถ•๋œ ํŽ˜์ด์ง€๊ฐ€ 0๋ฐ”์ดํŠธ๋ฅผ ์ฐจ์ง€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋‹จ์ผ ๋ธ”๋ก์„ ํ•ด์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ 2 ๋˜๋Š” 4 ๋ธ”๋ก ํฌ๊ธฐ์™€ ๊ฐ™์„ ๊ฒฝ์šฐ ํŽ˜์ด์ง€๊ฐ€ ๊ฐ๊ฐ ์ตœ์†Œ 50% ๋˜๋Š” 75%๋กœ ์••์ถ•๋˜๋ฉด ์ด๋ฏธ ์ตœ์†Œ ํ•˜๋‚˜์˜ ๋ธ”๋ก์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Apache Ignite์˜ ๋ฐ์ดํ„ฐ ์••์ถ•. ์Šค๋ฒ ๋ฅด์˜ ๊ฒฝํ—˜

ํ˜„์žฌ ๊ตฌํ˜„์—์„œ Ignite๋Š” Linux OS์˜ ์ŠคํŒŒ์Šค ํŒŒ์ผ์— ๋Œ€ํ•ด์„œ๋งŒ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋””์Šคํฌ ํŽ˜์ด์ง€ ์••์ถ•์€ ์ด ์šด์˜ ์ฒด์ œ์—์„œ Ignite๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋””์Šคํฌ ํŽ˜์ด์ง€ ์••์ถ•์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์••์ถ• ์•Œ๊ณ ๋ฆฌ์ฆ˜: ZSTD, LZ4, Snappy. ๋˜ํ•œ, ๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•ํ•˜์ง€ ์•Š๊ณ  ํŽ˜์ด์ง€ ๋‚ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ๊ณต๊ฐ„๋งŒ ๋ฒ„๋ฆฌ๋Š” ๋™์ž‘ ๋ชจ๋“œ(SKIP_GARBAGE)๊ฐ€ ์žˆ์–ด ์•ž์„œ ๋‚˜์—ด๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋น„ํ•ด CPU ๋ถ€ํ•˜๊ฐ€ ์ค„์–ด๋“ ๋‹ค.

์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ

๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ์šฐ๋ฆฌ๋Š” ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ƒ์‚ฐ์— ์‚ฌ์šฉํ•  ๊ณ„ํš์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ์Šคํƒ ๋“œ์—์„œ ์‹ค์ œ ์„ฑ๋Šฅ ์ธก์ •์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์ด๋ก ์ ์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์žƒ์„ ๊ณณ๊ณผ ์ด๊ธธ ๊ณณ์„ ์ถ”์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ์•ก์„ธ์Šคํ•  ๋•Œ ํŽ˜์ด์ง€๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์–ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฝ๊ธฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋จผ์ € RAM์—์„œ ๊ฒ€์ƒ‰๋˜๊ณ , ๊ฒ€์ƒ‰์— ์‹คํŒจํ•˜๋ฉด ์ฝ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์ผํ•œ ์Šค๋ ˆ๋“œ์— ์˜ํ•ด ํŽ˜์ด์ง€๊ฐ€ ๋””์Šคํฌ์—์„œ RAM์œผ๋กœ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.
  • ์“ฐ๊ธฐ ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜๋ฉด RAM์˜ ํŽ˜์ด์ง€๋Š” ๋”ํ‹ฐ๋กœ ํ‘œ์‹œ๋˜์ง€๋งŒ ์“ฐ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์Šค๋ ˆ๋“œ์— ์˜ํ•ด ํŽ˜์ด์ง€๊ฐ€ ๋””์Šคํฌ์— ์ฆ‰์‹œ ์ €์žฅ๋˜์ง€๋Š” โ€‹โ€‹์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋”ํ‹ฐ ํŽ˜์ด์ง€๋Š” ๋‚˜์ค‘์— ์ฒดํฌํฌ์ธํŠธ ํ”„๋กœ์„ธ์Šค์—์„œ ๋ณ„๋„์˜ ์Šค๋ ˆ๋“œ๋กœ ๋””์Šคํฌ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ฝ๊ธฐ ์ž‘์—…์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

์ €์šธ์˜ ์–ด๋Š ์ชฝ์ด ์ €์šธ์„ ๊ธฐ์šธ๊ฒŒ ํ•ฉ๋‹ˆ๊นŒ? ์ด ๋ชจ๋“  ๊ฒƒ์€ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€๋งŒ ๋””์Šคํฌ ํŽ˜์ด์ง€ ์••์ถ•์ด ๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ์—์„œ ์„ฑ๋Šฅ ์ €ํ•˜๋กœ ์ด์–ด์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ŠคํŒŒ์Šค ํŒŒ์ผ๊ณผ ์œ ์‚ฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ DBMS์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ์••์ถ•์ด ํ™œ์„ฑํ™”๋˜๋ฉด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

ํ™œ์„ฑํ™” ๋ฐ ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•

์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๋””์Šคํฌ ํŽ˜์ด์ง€ ์••์ถ•์„ ์ง€์›ํ•˜๋Š” Apache Ignite์˜ ์ตœ์†Œ ๋ฒ„์ „์€ 2.8์ด๋ฉฐ, Linux ์šด์˜์ฒด์ œ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™œ์„ฑํ™”ํ•˜๊ณ  ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • ํด๋ž˜์Šค ๊ฒฝ๋กœ์— ignite-compression ๋ชจ๋“ˆ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋Š” libs/ional ๋””๋ ‰ํ† ๋ฆฌ์˜ Apache Ignite ๋ฐฐํฌํŒ์— ์žˆ์œผ๋ฉฐ ํด๋ž˜์Šค ๊ฒฝ๋กœ์—๋Š” ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ libs๋กœ ํ•œ ์ˆ˜์ค€ ์œ„๋กœ ์ด๋™ํ•œ ๋‹ค์Œ ignite.sh๋ฅผ ํ†ตํ•ด ์‹คํ–‰ํ•˜๋ฉด ์ž๋™์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋‹ค์Œ์„ ํ†ตํ•ด ํ™œ์„ฑํ™”๋จ). DataRegionConfiguration.setPersistenceEnabled(true)).
  • ํŽ˜์ด์ง€ ํฌ๊ธฐ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ธ”๋ก ํฌ๊ธฐ๋ณด๋‹ค ์ปค์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ). DataStorageConfiguration.setPageSize() ).
  • ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•ํ•ด์•ผ ํ•˜๋Š” ๊ฐ ์บ์‹œ์— ๋Œ€ํ•ด ์••์ถ• ๋ฐฉ๋ฒ•๊ณผ (์„ ํƒ์ ์œผ๋กœ) ์••์ถ• ์ˆ˜์ค€(๋ฐฉ๋ฒ•)์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. CacheConfiguration.setDiskPageCompression() , CacheConfiguration.setDiskPageCompressionLevel()).

WAL ์••์ถ•

์ด๊ฑฐ ์–ด๋–ป๊ฒŒ ์ž‘๋™ ์‹œ์ผœ์š”

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

WAL์˜ ํ•ญ๋ชฉ์€ ๋…ผ๋ฆฌ์  ํ•ญ๋ชฉ๊ณผ ๋ฌผ๋ฆฌ์  ํ•ญ๋ชฉ์œผ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ๋ถ€์šธ์€ ํ‚ค์™€ ๊ฐ’ ์ž์ฒด์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ฆฌ์  - ํŽ˜์ด์ง€ ์ €์žฅ์†Œ์˜ ํŽ˜์ด์ง€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ์  ๋ ˆ์ฝ”๋“œ๋Š” ์ผ๋ถ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฌผ๋ฆฌ์  ๋ ˆ์ฝ”๋“œ๋Š” ์ถฉ๋Œ ์‹œ ๋ณต๊ตฌ์—๋งŒ ํ•„์š”ํ•˜๋ฉฐ ๋ ˆ์ฝ”๋“œ๋Š” ๋งˆ์ง€๋ง‰ ์„ฑ๊ณต์ ์ธ ์ฒดํฌํฌ์ธํŠธ ์ดํ›„์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์ด๊ฒƒ์ด ์™œ ์ด๋Ÿฐ ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ด€์‹ฌ ์žˆ๋Š” ๋ถ„๋“ค์€ Apache Ignite Wiki์—์„œ ์ด๋ฏธ ์–ธ๊ธ‰ํ•œ ๊ธฐ์‚ฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. Ignite Persistent Store - ๋‚ด๋ถ€์ ์œผ๋กœ.

๋…ผ๋ฆฌ์  ๋ ˆ์ฝ”๋“œ๋‹น ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌผ๋ฆฌ์  ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์˜ˆ๋ฅผ ๋“ค์–ด ์บ์‹œ์— ๋Œ€ํ•œ ํ•œ ๋ฒˆ์˜ ๋„ฃ๊ธฐ ์ž‘์—…์€ ํŽ˜์ด์ง€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€(๋ฐ์ดํ„ฐ ์ž์ฒด๊ฐ€ ์žˆ๋Š” ํŽ˜์ด์ง€, ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋Š” ํŽ˜์ด์ง€, ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ชฉ๋ก์ด ์žˆ๋Š” ํŽ˜์ด์ง€)์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์ข…ํ•ฉ ํ…Œ์ŠคํŠธ์—์„œ ๋ฌผ๋ฆฌ์  ๊ธฐ๋ก์ด WAL ํŒŒ์ผ์˜ ์ตœ๋Œ€ 90%๋ฅผ ์ฐจ์ง€ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งค์šฐ ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ์ ์œผ๋กœ ์ฒดํฌํฌ์ธํŠธ ๊ฐ„ ๊ฐ„๊ฒฉ์€ 3๋ถ„์ž…๋‹ˆ๋‹ค). ๊ด€๋ จ์„ฑ์„ ์žƒ์€ ํ›„ ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ๋…ผ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ WAL ์••์ถ• ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ฆฌ์  ๋ ˆ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  zip์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜๋จธ์ง€ ๋…ผ๋ฆฌ์  ๋ ˆ์ฝ”๋“œ๋ฅผ ์••์ถ•ํ•˜๋Š” ๋™์‹œ์— ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ๋งค์šฐ ํฌ๊ฒŒ(๋•Œ๋กœ๋Š” ์ˆ˜์‹ญ ๋ฐฐ๊นŒ์ง€) ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

๋ฌผ๋ฆฌ์ ์œผ๋กœ WAL์€ ๊ณ ์ •๋œ ํฌ๊ธฐ(๊ธฐ๋ณธ์ ์œผ๋กœ 10MB)์˜ ์—ฌ๋Ÿฌ ์„ธ๊ทธ๋จผํŠธ(๊ธฐ๋ณธ์ ์œผ๋กœ 64๊ฐœ)๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ์ˆœํ™˜ ๋ฐฉ์‹์œผ๋กœ ๋ฎ์–ด์“ฐ์—ฌ์ง‘๋‹ˆ๋‹ค. ํ˜„์žฌ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์ฑ„์›Œ์ง€์ž๋งˆ์ž ๋‹ค์Œ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ํ˜„์žฌ ์„ธ๊ทธ๋จผํŠธ๋กœ ํ• ๋‹น๋˜๊ณ  ์ฑ„์›Œ์ง„ ์„ธ๊ทธ๋จผํŠธ๋Š” ๋ณ„๋„์˜ ์Šค๋ ˆ๋“œ์— ์˜ํ•ด ์•„์นด์ด๋ธŒ์— ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค. WAL ์••์ถ•์€ ์ด๋ฏธ ์•„์นด์ด๋ธŒ ์„ธ๊ทธ๋จผํŠธ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ณ„๋„์˜ ์Šค๋ ˆ๋“œ๋กœ์„œ ์ฒดํฌํฌ์ธํŠธ ์‹คํ–‰์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๋ฌผ๋ฆฌ์  ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์•„์นด์ด๋ธŒ ์„ธ๊ทธ๋จผํŠธ์—์„œ ์••์ถ•์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

Apache Ignite์˜ ๋ฐ์ดํ„ฐ ์••์ถ•. ์Šค๋ฒ ๋ฅด์˜ ๊ฒฝํ—˜

์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ

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

ํ™œ์„ฑํ™” ๋ฐ ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•

์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ WAL ์••์ถ•์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. WalCompactionEnabled ะฒ DataStorageConfiguration (DataStorageConfiguration.setWalCompactionEnabled(true)). ๋˜ํ•œ, ๊ธฐ๋ณธ๊ฐ’(BEST_SPEED)์— ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•  ๊ฒฝ์šฐ DataStorageConfiguration.setWalCompactionLevel() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์••์ถ• ์ˆ˜์ค€์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

WAL ํŽ˜์ด์ง€ ์Šค๋ƒ…์ƒท ์••์ถ•

์ด๊ฑฐ ์–ด๋–ป๊ฒŒ ์ž‘๋™ ์‹œ์ผœ์š”

์šฐ๋ฆฌ๋Š” ์ด๋ฏธ WAL ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋…ผ๋ฆฌ์  ๋ ˆ์ฝ”๋“œ์™€ ๋ฌผ๋ฆฌ์  ๋ ˆ์ฝ”๋“œ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ํŽ˜์ด์ง€๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ฌผ๋ฆฌ์  WAL ๋ ˆ์ฝ”๋“œ๊ฐ€ ํŽ˜์ด์ง€ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ฆฌ์  ๋ ˆ์ฝ”๋“œ๋„ ํŽ˜์ด์ง€ ์Šค๋ƒ…์ƒท ๋ ˆ์ฝ”๋“œ์™€ ๋ธํƒ€ ๋ ˆ์ฝ”๋“œ๋ผ๋Š” 2๊ฐ€์ง€ ํ•˜์œ„ ์œ ํ˜•์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜๊ณ  ํด๋ฆฐ ์ƒํƒœ์—์„œ ๋”ํ‹ฐ ์ƒํƒœ๋กœ ์ „ํ™˜ํ•  ๋•Œ๋งˆ๋‹ค ์ด ํŽ˜์ด์ง€์˜ ์ „์ฒด ๋ณต์‚ฌ๋ณธ์ด WAL(ํŽ˜์ด์ง€ ์Šค๋ƒ…์ƒท ๋ ˆ์ฝ”๋“œ)์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. WAL์—์„œ 90๋ฐ”์ดํŠธ๋งŒ ๋ณ€๊ฒฝํ•˜๋”๋ผ๋„ ๋ ˆ์ฝ”๋“œ๋Š” ํŽ˜์ด์ง€ ํฌ๊ธฐ๋ณด๋‹ค ์•ฝ๊ฐ„ ๋” ์ปค์ง‘๋‹ˆ๋‹ค. ์ด๋ฏธ ๋”ํ‹ฐ ํŽ˜์ด์ง€์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด WAL์— ๋ธํƒ€ ๋ ˆ์ฝ”๋“œ๊ฐ€ ํ˜•์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŽ˜์ด์ง€์˜ ์ด์ „ ์ƒํƒœ์™€ ๋น„๊ตํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋งŒ ๋ฐ˜์˜ํ•˜๊ณ  ์ „์ฒด ํŽ˜์ด์ง€๋Š” ๋ฐ˜์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ์ƒํƒœ๋ฅผ ๋”ํ‹ฐ์—์„œ ํด๋ฆฐ์œผ๋กœ ์žฌ์„ค์ •ํ•˜๋Š” ์ž‘์—…์€ ์ฒดํฌํฌ์ธํŠธ ํ”„๋กœ์„ธ์Šค ์ค‘์— ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ ์ฒดํฌํฌ์ธํŠธ ์‹œ์ž‘ ์งํ›„์—๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๋ฌผ๋ฆฌ์  ๋ ˆ์ฝ”๋“œ๊ฐ€ ํŽ˜์ด์ง€์˜ ์Šค๋ƒ…์ƒท์œผ๋กœ๋งŒ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค(์ฒดํฌํฌ์ธํŠธ ์‹œ์ž‘ ์งํ›„์˜ ๋ชจ๋“  ํŽ˜์ด์ง€๋Š” ํด๋ฆฐ์ด๋ฏ€๋กœ). , ๋‹ค์Œ ์ฒดํฌํฌ์ธํŠธ์— ์ ‘๊ทผํ•˜๋ฉด ๋ธํƒ€ ๋ ˆ์ฝ”๋“œ ๋ถ€๋ถ„์ด ์ปค์ง€๊ธฐ ์‹œ์ž‘ํ•˜๊ณ  ๋‹ค์Œ ์ฒดํฌํฌ์ธํŠธ ์‹œ์ž‘ ๋ถ€๋ถ„์—์„œ ๋‹ค์‹œ ์žฌ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์ข…ํ•ฉ ํ…Œ์ŠคํŠธ์—์„œ ์ธก์ •ํ•œ ๊ฒฐ๊ณผ ์ „์ฒด ๋ฌผ๋ฆฌ์  ๊ธฐ๋ก์—์„œ ํŽ˜์ด์ง€ ์Šค๋ƒ…์ƒท์ด ์ฐจ์ง€ํ•˜๋Š” ๋น„์ค‘์ด XNUMX%์— ๋‹ฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

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

ํŽ˜์ด์ง€๋Š” ์••์ถ•๋ฅ ์ด ๋†’์€ ๋ฐ์ดํ„ฐ์ด๊ณ  ์ „์ฒด WAL ๋ณผ๋ฅจ์—์„œ ์ฐจ์ง€ํ•˜๋Š” ๋น„์œจ์ด ๋งค์šฐ ๋†’์œผ๋ฏ€๋กœ WAL ํŒŒ์ผ ํ˜•์‹์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋„ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ์  ๋ ˆ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•œ ์••์ถ•์—๋Š” ํ˜•์‹ ๋ณ€๊ฒฝ๊ณผ ํ˜ธํ™˜์„ฑ ์†์‹ค์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋…ผ๋ฆฌ์  ๋ ˆ์ฝ”๋“œ์— ๊ด€์‹ฌ์ด ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ํฌ๊ฒŒ ์ค„์–ด๋“ค์ง€๋Š” ์•Š๋Š” ์™ธ๋ถ€ ์†Œ๋น„์ž์˜ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

๋””์Šคํฌ ํŽ˜์ด์ง€ ์••์ถ•๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ WAL ํŽ˜์ด์ง€ ์Šค๋ƒ…์ƒท ์••์ถ•์€ ZSTD, LZ4, Snappy ์••์ถ• ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ SKIP_GARBAGE ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ

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

์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์Šค๋ ˆ๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ๋””์Šคํฌ์— ์“ฐ๊ธฐ ์ „์— ๋งค๋ฒˆ ํŽ˜์ด์ง€๋ฅผ ์••์ถ•ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€์ •์ ์ธ ํšจ๊ณผ(CPU)๋ฅผ ์–ป๊ณ , ์ž‘์„ฑ๋œ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์—ฌ๊ธฐ์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์ด CPU์— ์˜ํ•ด ์ œํ•œ๋˜๋ฉด ์•ฝ๊ฐ„ ์ €ํ•˜๋˜๊ณ , ๋””์Šคํฌ I/O์— ์˜ํ•ด ์ œํ•œ๋˜๋ฉด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ„์ ‘์ ์œผ๋กœ WAL ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์€ WAL ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์•„์นด์ด๋ธŒ ๋ฐ WAL ์••์ถ• ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋คํ”„ํ•˜๋Š” ์ŠคํŠธ๋ฆผ์—๋„ (๊ธ์ •์ ์œผ๋กœ) ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

ํ•ฉ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ ์šฐ๋ฆฌ ํ™˜๊ฒฝ์˜ ์‹ค์ œ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ์•ฝ๊ฐ„์˜ ์ฆ๊ฐ€๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค(์ฒ˜๋ฆฌ๋Ÿ‰ 10%-15% ์ฆ๊ฐ€, ๋Œ€๊ธฐ ์‹œ๊ฐ„ 10%-15% ๊ฐ์†Œ).

ํ™œ์„ฑํ™” ๋ฐ ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•

์ตœ์†Œ Apache Ignite ๋ฒ„์ „: 2.8. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™œ์„ฑํ™”ํ•˜๊ณ  ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • ํด๋ž˜์Šค ๊ฒฝ๋กœ์— ignite-compression ๋ชจ๋“ˆ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋Š” libs/ional ๋””๋ ‰ํ† ๋ฆฌ์˜ Apache Ignite ๋ฐฐํฌํŒ์— ์žˆ์œผ๋ฉฐ ํด๋ž˜์Šค ๊ฒฝ๋กœ์—๋Š” ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ libs๋กœ ํ•œ ์ˆ˜์ค€ ์œ„๋กœ ์ด๋™ํ•œ ๋‹ค์Œ ignite.sh๋ฅผ ํ†ตํ•ด ์‹คํ–‰ํ•˜๋ฉด ์ž๋™์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋‹ค์Œ์„ ํ†ตํ•ด ํ™œ์„ฑํ™”๋จ). DataRegionConfiguration.setPersistenceEnabled(true)).
  • ์••์ถ• ๋ชจ๋“œ๋Š” ๋‹ค์Œ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. DataStorageConfiguration.setWalPageCompression(), ์••์ถ•์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค(DISABLED ๋ชจ๋“œ).
  • ์„ ํƒ์ ์œผ๋กœ ๋‹ค์Œ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์••์ถ• ์ˆ˜์ค€์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DataStorageConfiguration.setWalPageCompression(), ๊ฐ ๋ชจ๋“œ์— ์œ ํšจํ•œ ๊ฐ’์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•์€ javadoc์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ฒฐ๋ก 

Apache Ignite์—์„œ ๊ณ ๋ ค๋œ ๋ฐ์ดํ„ฐ ์••์ถ• ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์„œ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋“ค์˜ ์กฐํ•ฉ๋„ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ž‘๋™ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๋ฉด ํ•ด๋‹น ํ™˜๊ฒฝ์—์„œ ์ž‘์—…์— ์–ผ๋งˆ๋‚˜ ์ ํ•ฉํ•œ์ง€, ์‚ฌ์šฉํ•  ๋•Œ ๋ฌด์—‡์„ ํฌ์ƒํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋””์Šคํฌ ํŽ˜์ด์ง€ ์••์ถ•์€ ์ฃผ ์ €์žฅ์†Œ๋ฅผ ์••์ถ•ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ ์ค‘๊ฐ„ ์••์ถ• ๋น„์œจ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. WAL ํŽ˜์ด์ง€ ์Šค๋ƒ…์ƒท ์••์ถ•์€ WAL ํŒŒ์ผ์— ๋Œ€ํ•œ ํ‰๊ท  ์••์ถ• ์ˆ˜์ค€์„ ์ œ๊ณตํ•˜๋ฉฐ ์„ฑ๋Šฅ๋„ ํ–ฅ์ƒ์‹œํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. WAL ์••์ถ•์€ ์„ฑ๋Šฅ์— ๊ธ์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์ง€๋งŒ ๋ฌผ๋ฆฌ์  ๋ ˆ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ WAL ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ์ตœ๋Œ€ํ•œ ์ค„์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

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