์๋์ง ๋ถ์ผ๋ ๋๋ ธ์ด ๋๋ ๋ฐ๋ฆฌ์ด ๋จ์์ ์๊ณ์ด ๋ฐ์ดํฐ๊ฐ ๋น ๋ฅด๊ฒ ์์ฑ๋๋ ํน์ํ ์์ฅ์ ๋๋ค. ์๊ณ์ด ๋ฐ์ดํฐ๋ ๊ธ์ต(Financial) ์์ฅ์์๋ถํฐ ์ค์์ฑ์ด ๋ถ๊ฐ๋์์ผ๋ ์ด์ ๋ ๋ค์ํ ๋ถ์ผ์์ ๋ฐ์ํ๊ณ ์ด๋ฅผ ํ์ฉํ ๋ง์ ์๋น์ค๊ฐ ๋ง๋ค์ด์ง๊ณ ์์ต๋๋ค. ์ต์ํ ์ด ๋จ์๋ก ๋ง๋ค์ด์ง๋ ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ๋ฑ๋กํ๊ณ ์กฐํํ ์ ์๋ ๊ฒ์ ๋ชฉ์ ์ผ๋กํ๋ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ง๋ ์ค์ํด์ง๊ณ ์๊ณ ๋ง์ ์คํ์์ค ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฃจ์ ๋ ๋ง๋ค์ด์ง๊ณ ์์ต๋๋ค. ํ์ฌ ์กฐ์ง์์๋ ํด์ธ ๊ธ์ต ๋ถ์ผ์์ ์ด๋์ ๋ ์ ์ง๋ฅผ ๋ณด์ด๊ณ ์๋ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ KDB+๋ฅผ ๋์ ํ์ฌ ์๋น์ค์ ์ฌ์ฉ์ค์ ๋๋ค. ๋ผ์ด์ผ์ค ๋น์ฉ์ด ์๊ฐ๋ณด๋ค ๋น์ธ๊ธฐ๋ ํ์ง๋ง ๊ณ ๊ฐ๋ค์ด ๋ณด์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์์งํ๊ณ ๋ฑ๋กํ๊ธฐ ์ํด์๋ ์ด์ฉ์ ์๋ ์ ํ์ด๊ธฐ๋ ํฉ๋๋ค.
KDB+ โ
What Makes Time-Series Database kdb+ So Fast?
KX Systems์ ๋ธ๋ก๊ทธ ๋๋ Kdb+ and q documentation ์ฌ์ดํธ์์ ์ ๊ณตํ๋ ์ ๋ณด๋ฅผ ํ ๋๋ก KDB+ ํ๋ก์ธ์ค์ ๋ํด์ ๊ฐ๋จํ๊ฒ ์ดํดํ๊ณ ํ์ฉํด๋ณผ ์ ์์ต๋๋ค. ๋ ๋์๊ฐ์๋ White Paper๋ฅผ ํตํด์ KDB+ ํ๋ก์ธ์ค๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํ ๋ฐฉ์์ ํ์ธํ ์ ์์ต๋๋ค. ๋ณธ ๊ธ์์๋ KDB+ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ต์ํ ์์์ผํ ๋ถ๋ถ์ ๋ค๋ฃน๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ โ
KDB+ ํ๋ก์ธ์ค์์ ๋ฐ์ดํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ
์ด๋ธ์ด๋ผ๋ ๋ณ์์ ์ ์ฅ๋๋ฉฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ง๋ฉ๋๋ค. ๊ทธ๋ฌ๋, ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ์์์ ํ์ ์ ์ด๋ฏ๋ก ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํ๊ธฐ์๋ ํ์ค์ ์ผ๋ก ๋ถ๊ฐ๋ฅํฉ๋๋ค. KDB+ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๊ฒ๋๋ฉด 'wsfull
์ค๋ฅ๋ฅผ ๋ณด๊ณ ํ๊ณ ํ๋ก์ธ์ค๋ ์ข
๋ฃ๋ฉ๋๋ค. ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์ ์ค๋๋ฏ๋ก ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค.
KDB+ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์๋ฒ ๋ฉ๋ชจ๋ฆฌ ์์๋ณด๋ค ํฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด์ ๋์คํฌ ํ์ผ์ ํ์ฉํฉ๋๋ค. ํ ์ด๋ธ์ ๋ฐ์ดํฐ ๊ท๋ชจ์ ๋ฐ๋ผ ๋จ์ผ ๋ฐ์ด๋๋ฆฌ ํ์ผ๋ก ๊ธฐ๋กํ๊ฑฐ๋ ํ ์ด๋ธ์ ์ปฌ๋ผ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ ์ปฌ๋ผ ์ด๋ฆ์ ๊ฐ์ง ํ์ผ์ ๊ฐ์ง๋ ํด๋๋ก ์ ์ฅํฉ๋๋ค. ๋ ๋์๊ฐ์๋ ์ซ์ ๋๋ ๋ ์ง์ ๊ฐ์ ๊ฐ์์ ํํฐ์ ์ ๋์ด์ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
์คํ๋ ์ด ํ ์ด๋ธ โ
์คํ๋ ์ด ํ ์ด๋ธ(Splayed Table)๋ ์ฌ๋ณผ๊ณผ ๊ฐ์ ๊ธฐํธ๊ฐ ์๋ ์์ ํ ์ด๊ฑฐ๋ ํ ์ด๋ธ์ด์ด์ผํฉ๋๋ค. ํ ์ด๋ธ์ ์ฌ๋ณผ ํ์์ ์ปฌ๋ผ์ด ์กด์ฌํ๋ค๋ฉด Enumerating symbol columns์์์ฒ๋ผ ์ฌ๋ณผ ๋ฐ์ดํฐ๊ฐ sym ํ์ผ์ด๋ผ๊ณ ํ๋ ๋ณ๋์ ํ์ผ์ ์ด๊ฑฐ๋ ์ํ๋ก ํ ์ด๋ธ์ ์ ์ฅํด์ผํจ์ ์ธ์งํด์ผํฉ๋๋ค.
ํํฐ์ ํ ์ด๋ธ โ
์ผ๋ฐ์ ์ผ๋ก KDB+ ํ๋ก์ธ์ค์์ ์คํ๋ ์ด ํ ์ด๋ธ์ ๊ทธ๋๋ก ์ฌ์ฉํ๊ธฐ๋ณด๋ค๋ ๊ฐ์์ ํํฐ์ ํด๋ ๋ฐ์ ๋์ด์ ํํฐ์ ํ ์ด๋ธ์ ๊ตฌ์ฑํ์ฌ ๋ก๋ํ๋๋ก ๊ตฌ์ฑํฉ๋๋ค. ํํฐ์ ํ ์ด๋ธ(Partitioned Table)์ KDB+ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ผ๋ฐ์ ์ผ๋ก ๊ตฌ์ฑํ๋ ํฐ์ปคํ๋ํธ ์ํคํ ์ฒ์์ HDB ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ฏ๋ก ๋ฐ๋์ ์ดํดํด์ผํ ๋ถ๋ถ์ ๋๋ค.
ํํฐ์ ํ ์ด๋ธ์ ๊ฐ ์คํ๋ ์ด ํ ์ด๋ธ์ `p# ๋๋ `g# ์์ฑ์ ์ ์ฉํ์ฌ ์ ์ฅํ๋ ๊ฒ์ ํ์ผ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ์ฌ ์ฌ์ฉํ๋ HDB ํ๋ก์ธ์ค์ ๋ํ ์ฟผ๋ฆฌ ์ต์ ํ๋ฅผ ์ํํ ์ ์๋๋ก ์ง์ํ๋ ๋ถ๋ถ์ผ๋ก ํ์์ ๋ฐ๋ผ ์ ์ฉํด์ผํ ์ ์์ต๋๋ค.
ํ๋ก์ธ์ค ํต์ โ
KDB+ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ์ฉ์ ์์ฒญ์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋จ์ผ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ธ์ค์ ๋๋ค. ์ํคํ ์ฒ์ ์ธ ๊ด์ ์์๋ ๋จ์ผ ํ๋ก์ธ์ค๋ฅผ ์คํํ์ฌ ํ์ฉํ๊ธฐ๋ณด๋ค๋ ์ฉ๋์ ๋ชฉ์ ์ ๋ง๋ ์ฌ๋ฌ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ณ ํ๋ก์ธ์ค ๊ฐ ํต์ (IPC)๋ฅผ ํตํด ์๋ก ์ ๊ธฐ์ ์ธ ์์ฒญ๊ณผ ์๋ต์ ํตํด ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ ์ ์๋๋ก ๊ตฌ์ฑํ๊ฒ ๋ฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด One-shot request ํํ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
`::5011 "trade"
`::5011 ({trade};::)
๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ๋ค์์ ์์ฒญ์ ์ํํ๋ ๊ฒฝ์ฐ์๋ hopen ๋ฐ hclose๋ฅผ ํตํด ๋ช ์์ ์ผ๋ก ์์ผ์ ์ด๊ณ ๋ซ๋๊ฒ์ด ๋ ํจ์จ์ ์ ๋๋ค. ์ฅ์๊ฐ ์์ผ์ ์ด์ด๋๊ณ ์ฌ์ฉํ๋ ๊ฒ์ ๋ค์ํ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ ๊ฒฝํ์ด ์์ผ๋ฏ๋ก ๊ฐ์ธ์ ์ผ๋ก ์ถ์ฒํ์ง ์์ต๋๋ค.
ํฑ ์ํคํ ์ฒ โ
KDB+ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ตํ๋ ๋จ๊ณ์์๋ ๋จ์ผ ํ๋ก์ธ์ค๋ก๋ ์ถฉ๋ถํฉ๋๋ค. ๊ทธ๋ฌ๋, ์ค์ ๋ก ์์คํ ์ ์ด์ฉํ๊ธฐ ์ํด์๋ ๋ค์์ ํ๋ก์ธ์ค๋ก ๊ตฌ์ฑ๋ ์ํคํ ์ฒ๋ฅผ ๋์ ํด์ผํ ํ์์ฑ์ด ์์ต๋๋ค. KDB+ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๊ตฌ์ฑํ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ํคํ ์ฒ๋ ํฐ์ปคํ๋ํธ์ด๋ฉฐ ๊ธ์ต ์์ฅ์์ ์ฌ์ฉํ๊ธฐ ์ฉ์ดํ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
ํฐ์ปคํ๋ํธ โ
ํฐ์ปคํ๋ํธ(Tickerplant)๋ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ธฐ ์ํ ์ง์ ์ ์ ์ ๊ณตํ๋ ํ๋ก์ธ์ค๋ก ๋ฐ์ดํฐ ๋ฑ๋ก ํจ์์ ๋ํ ์์ฒญ์ TP ๋ก๊ทธ ํ์ผ์ ๊ธฐ๋กํ์ฌ ์์คํ ์ด ์๊ธฐ์น ์์ ์ํฉ์ผ๋ก ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ๋ณต๊ตฌํ ์ ์๋ ๋ฐฉ์์ ์ ๊ณตํฉ๋๋ค. ๋ํ, Pub/Sub์ผ๋ก ๋ฐ์ดํฐ ํผ๋ ๊ตฌ๋ ์๋ก ๋ฑ๋ก๋์ด์๋ ํ๋ก์ธ์ค๋ก ๋ฑ๋ก๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ณ ์ญ์ ํจ์ผ๋ก์จ ํฐ์ปคํ๋ํธ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ์ต์ํํ ์ ์๋๋กํ์ฌ ๊ฒฝ๋ ํ๋ก์ธ์ค๋ก ๊ตฌ๋๋ฉ๋๋ค.
์ค์๊ฐ ๋ฐ์ดํฐ โ
์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Realtime DB) ํ๋ก์ธ์ค๋ ํฐ์ปคํ๋ํธ ํ๋ก์ธ์ค์ ๋ฐ์ดํฐ ํผ๋ ๊ตฌ๋ ์๋ก ๋ฑ๋ก๋๋ ํด๋ผ์ด์ธํธ ์ค ํ๋์ด๋ฉฐ ํฐ์ปคํ๋ํธ๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํฐ์ปคํ๋ํธ๊ฐ ์ ๋ฌํ๋ EOH(End of hour) ๋๋ EOD(End of day) ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํ๋ ๋ฐ์ดํฐ๋ฅผ ํ์ฌ ์๊ฐ ๋๋ ์ผ์์ ๋ํ ํํฐ์ ํ ์ด๋ธ๋ก ๊ธฐ๋กํ๊ณ ๋ค์ ํฐ์ปคํ๋ํธ๋ก๋ถํฐ ๋ฐ์ดํฐ ์์ ์ด ๊ฐ๋ฅํ๋๋ก ์ค๋นํฉ๋๋ค.
EOH ๋๋ EOD ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ ์์ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ํ์ผ๋ก ์ ์ฅํด์ผํ๋ฏ๋ก ๋ฐ์ดํฐ ๊ท๋ชจ์ ๋ฐ๋ผ CPU ์ฐ์ฐ ๋ฐ ๋์คํฌ I/O ์์ ์ ๋ํ ๋ถํ๊ฐ ์ผ๊ธฐ๋ ์ ์์ต๋๋ค. ๋ฐ๋ผ์, ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผ๋๋ ๋ฐ์ดํฐ์ ๊ท๋ชจ๋ฅผ ์์ํ๊ณ ์๋ฒ ์ฑ๋ฅ์ ๊ฒฐ์ ํด์ผํฉ๋๋ค. KDB+ ํ๋ก์ธ์ค๊ฐ ํ์ผ๋ก ๊ธฐ๋กํ๋ ๊ฒ์ ๋์คํฌ I/O ์ฑ๋ฅ์ ์์กดํ๋ฏ๋ก RDB ํ๋ก์ธ์ค์ ๋ํ ๋ณ๋ชฉ ํ์์ ์ต์ํํ๊ธฐ ์ํด์๋ ๋์ I/O ์ฑ๋ฅ์ ๊ฐ์ง๋ ์คํ ๋ฆฌ์ง๋ฅผ ๊ณ ๋ คํ๋๊ฒ ์ข์ต๋๋ค.
๊ณผ๊ฑฐ ํํฐ์ ๋ฐ์ดํฐ โ
๊ณผ๊ฑฐ ํํฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Historical DB)๋ RDB ํ๋ก์ธ์ค๊ฐ ํํฐ์ ํ ์ด๋ธ ํํ์ ํด๋๋ก ๊ธฐ๋กํ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ์ฌ ์ฌ์ฉ์ ์ฟผ๋ฆฌ์ ๋ํ ์กฐํ ๋ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ ์ ์๋๋ก ์ง์ํฉ๋๋ค. ๋ฐ์ดํฐ ๊ท๋ชจ ๋ฐ ์๋ฒ ์์์ ๋ฐ๋ผ ์๊ฐ ๋๋ ์ผ์๋ณ ํํฐ์ ์ผ๋ก ๊ตฌ์ฑ๋๋ฏ๋ก ์์คํ ์ด ์ฟผ๋ฆฌ๋ฅผ ์ํํ๊ธฐ์ ํจ์จ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋๋ก ๊ณ ๋ คํด์ผํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์๊ฐ๋ณ ํํฐ์ ์ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ์๋ ์ํ๋ ๊ธฐ๊ฐ์ ๋ํ ์๊ฐ ํด๋์ ๋ฐ์ดํฐ๋ง ํ์ฉํ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋, ์ฌ์ฉ์ ์ฟผ๋ฆฌ์ ๋ํ ์กฐํ ๋ฒ์๊ฐ ๋ง์์ง์๋ก ๋์คํฌ I/O ์์ ์ ์ํํด์ผํ๋ ๋นํจ์จ์ ์ธ ๋ถ๋ถ์ผ๋ก ์ธํด ์คํ๋ ค ์กฐํ ์๊ฐ์ด ๋์ด๋ ์ ์์ต๋๋ค.
KDB+ ํ๋ก์ธ์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฐจ์ฒ๋ฆฌ์์ ์ธ์งํด์ผํ๋ฉฐ ๋ง์ ํํฐ์ ์ ์กฐํํ๋ ์ฟผ๋ฆฌ๊ฐ ์์ฃผ ์์ฒญ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ฉด ํ๋์ ํ๋ก์ธ์ค์์ ์๊ฐ ๋ฐ ์ผ์๋ณ ํํฐ์ ์ ๋์์ ์ฌ์ฉํ ์ ์๋๋ก ์ง์ํ์ง ์์ผ๋ฏ๋ก ์ผ์๋ณ ํํฐ์ ์ ๊ตฌ์ฑํ๋ ๋ณ๋์ HDB ํ๋ก์ธ์ค๋ฅผ ๋์ ํ๋ ๊ฒ์ ๊ณ ๋ คํด์ผํฉ๋๋ค.
์ฌ์ฉ์ ์์ฒญ์ ๋ํ ์ฟผ๋ฆฌ๊ฐ ์ฌ๋ฌ๊ฐ์ ํํฐ์ ์ ์กฐํํด์ผํ๋ ์์ ์ด๋ผ๋ฉด ํ๋ก์ธ์ค ์คํ ์ ์ง์ ๋ ๋ณด์กฐ ์ค๋ ๋๋ฅผ ํตํด์ ํํฐ์ ๋ณ ์กฐํ๋ฅผ ๋ณ๋ ฌ๋ก ์ํํ๋๋ก ํ๋ก์์ ๋ฅผ ์์ฑํ์ฌ ์ฟผ๋ฆฌ ์์ ์๊ฐ์ ์ด๋์ ๋๋ ์ต์ ํํ ์ ์์ต๋๋ค. ๊ฝค ๋ง์ ์ฟผ๋ฆฌ๊ฐ ๋ณ๋ ฌ ์์ ์ ์ํํ๋ ์ฝ๋๋ฅผ ๋์ ํจ์ผ๋ก์จ ๊ทน๋จ์ ์ผ๋ก ์ฟผ๋ฆฌ ์ํ์๊ฐ์ด ์ค์ด๋ฌ์ ํ์ธํ ์ ์์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ์ผ์ด์ค๋ฅผ ์๋ฅผ ๋ค์๋ฉด ๋จ์ผ ์ค๋ ๋ ๋ฐ ์์ฐจ ์ฒ๋ฆฌ์ ์ํด 200ms๊ฐ ์์๋๋ ํ๋ก์์ ๊ฐ ๋ณ๋ ฌ ์ฐ์ฐ ์์ ๋ฐ ๋นํจ์จ์ ์ธ ๋ฐ๋ณต ์์ ์ ์ํํ๋ ๋ฐฉ์์ ๊ฐ์ ํ๊ณ ์ 30ms๊ฐ ์์๋๋๋ก ๊ฐ์ ๋์์ต๋๋ค.
๊ฐ์ธ์ ์ธ ์ฟผ๋ฆฌ ๊ฒฝํ์ ์ํ๋ฉด ๋ฐ์ดํฐ ์กฐํ์ ๋ํ ๋ฐ๋ณต ์์ ์ ์ต์ํํ๋ ๊ฒ์ ๊ณ ๋ คํ๊ณ ๋ฐ์ดํฐ ์กฐํ์์๋ ๋ณ๋ ฌ ์์ ์ ์ํํ๋ ๊ฒ์ด ํจ์จ์ ์ธ์ง๋ฅผ ๊ฒํ ํ๋๊ฒ ์ข์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ํค์๋ ๋ณด๋ค ๋ ์ ์ ์๊ฐ์ด๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, Left Join์ ๋ฐ๋ณต ์ํํด์ผํ๋ ๊ฒฝ์ฐ๋ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ฐ๊ฒฐํ์ฌ ์ํํ๋๋ก ์์ฑํ ์ ์์ต๋๋ค.
R:A lj B;
R:R lj C;
R:R lj D;
R:(lj/)(A;B;C;D);
์ฅ์ ๋ฐ ๋ณด์ โ
์ด์ ๊น์ง ๊ฒฝํํ๋ ์ฅ์ ๋๋ ํ์ฌ ๊ฒฝํํ๊ณ ์๋ ๋ถ๋ถ์ ๊ณต์ ํ๊ณ ์ด๋ป๊ฒ ๋ณด์ํ ์ ์์๊น๋ฅผ ์ ๋ฆฌํฉ๋๋ค.
์์ฐจ ์ฒ๋ฆฌ๋ก ์ธํ ๋ณ๋ชฉ ํ์ โ
KDB+ ํ๋ก์ธ์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฑ๊ธ ์ค๋ ๋๋ก ๋์ํ๋ฏ๋ก ๋ชจ๋ ๋๊ธฐ ์์ฒญ์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค๋ ์ ์ฝ
์ด ์์ต๋๋ค. ๊ทธ๋์ ํธ๋์ญ์
์ ์ง์ํ์ง ์๋๋ผ๋ ํ์ฌ ์ฌ์ฉ์์ ์์ฒญ์ ๋ํ ์์
๊ฒฐ๊ณผ๊ฐ ๋ค์ ์์ฒญ์ ๋ฐ์๋จ์ ๋ณด์ฅํฉ๋๋ค. ๊ทธ๋ฌ๋, ํ์ฌ ์ํ์ค์ธ ์์ฒญ์ ๋ํ ์์
์ด ๊ธธ์ด์ง์๋ก ๋ค๋ฅธ ์์ฒญ์ด ๋๊ธฐํด์ผํ๋ ์๊ฐ์ด ๋ง์์ง ์ ์์ต๋๋ค. KDB+ ํ๋ก์ธ์ค์ ๊ตฌ์ฑ์ด ๋ณต์กํ๊ณ ๊ฐ ์์ฒญ์ ๋ํ ์ฟผ๋ฆฌ๊ฐ ๋ณต์กํด์ง์ ๋ฐ๋ผ์ ๋น ๋ฅด๊ฒ ์์ฒญ๋๋ ์ฟผ๋ฆฌ๊ฐ ์์ฐจ์ ์ผ๋ก ๋ฐ๋ฆฌ๋ ํ์์ผ๋ก ์ธํ์ฌ ๋ง์ ์ด๋ ค์์ ๊ฒฝํํ๊ณ ์์ต๋๋ค. ์ฌ์ฉ์ ์์ฒญ์ ๋ํ ์ฟผ๋ฆฌ ์ต์ ํ๋ ์ผ์์ ์ธ ๋์์ผ ๋ฟ์ด๋ฉฐ ๊ฒฐ๋ก ์ ์ผ๋ก๋ ์ํคํ
์ฒ์ ์ธ ๊ด์ ์์ ๋ค์์ ์ ๋ณด๋ฅผ ๊ณ ๋ คํด์ผํฉ๋๋ค.
- Multithreaded input queue mode
- Deferred response
- Common design principles for kdb+ gateways
- Query Routing: A kdb+ framework for a scalable, load balanced system
ํ์ฌ ์กฐ์ง์์๋ ์์ ๋ฐฉ์๋ค์ ๊ฒํ ํ์์ผ๋ ์ฌ๋ฌ๊ฐ์ง ์ ์ฝ์ด๋ ์ดํดํ๊ธฐ ํ๋ ๋ถ๋ถ์ผ๋ก ์ธํ์ฌ KDB+ ์์คํ ์ ๊ตฌ์ฑํ๋ ๊ฐ ํ๋ก์ธ์ค์ ๋ํ ์์กด์ฑ์ ๋ถ์ฐํ๋ ์์ ์ ๋จผ์ ์๋ํด๋ณด๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋ค์์ ํ๋ก์ธ์ค๊ฐ ์๋ก ์ ๊ธฐ์ ์ผ๋ก ํต์ ํ๋ฉด์ ๋ฐ์ํ๋ ๋ณ๋ชฉ ํ์์ ์ต์ํํ๋๋ก ์ฌ๊ตฌ์ฑํ๋๊ฒ ๋ชฉ์ ์ ๋๋ค.
๋จ์ผ ๋์คํฌ I/O ์์ ์ผ๋ก ์ธํ ๋ณ๋ชฉ ํ์ โ
ํ๋์ ์๋ฒ์ KDB+ ํ๋ก์ธ์ค๋ฅผ ์ฌ๋ฌ๊ฐ ๊ตฌ์ฑํ๋๋ผ๋ ํน์ ํ๋ก์ธ์ค์์ ๋์คํฌ I/O ์์ ์ ์ํํ๋ ๊ฒฝ์ฐ ๋์ผํ ํด๋๋ ํ์ผ์ ๋ํ ์์ ์ ์ํํด์ผํ๋ ๊ฒฝ์ฐ ์ผ์์ ์ผ๋ก ๋๊ธฐํ๋ ๋ณ๋ชฉ ํ์์ด ์ผ๊ธฐ๋ ์ ์์ต๋๋ค. ํํฐ์ ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋์ง ์์๋ค๊ฑฐ๋ ์ฃผ์ ์ปฌ๋ผ์ ์์ฑ์ด ๋ถ์ฌ๋์ง ์์ ๋ถ๋ถ์ ์ํด ํํฐ์ ์ ๋ณด์ ํ๋ ํ๋ก์ธ์ค๊ฐ ์์ ์ค์ผ๋ ๋์ผํ ํํฐ์ ํด๋๋ฅผ ๋ก๋ํด์ผํ๋ HDB ํ๋ก์ธ์ค์์ ์ฌ์ฉ์ ์์ฒญ์ ๋ํ ์์ ์ด ์ผ์์ ์ผ๋ก ๋ง์ด ์์๋๋ ๋ฌธ์ ๋ฅผ ๊ฒฝํํ์ต๋๋ค.
ํฐ์ปคํ๋ํธ ์ํคํ ์ฒ์์๋ ํ์ฌ ์๊ฐ ๋๋ ์ผ์์ ๋ํ ์๊ณ์ด ๋ฐ์ดํฐ๊ฐ ๋ฑ๋ก๋์ด์ผํ์ง๋ง ๊ณผ๊ฑฐ์ ๋ํ ์๊ณ์ด ๋ฐ์ดํฐ๊ฐ ์ค์๊ฐ์ผ๋ก ๋ฑ๋ก๋จ์ ๋ฐ๋ผ ์ฌ๋ฐ๋ฅธ ํํฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณํฉํ๋ ์์ ์ผ๋ก ์ธํด ๋์คํฌ I/O๋ก ์ธํ ๋ณ๋ชฉ ํ์์ด ์ผ๊ธฐ๋๊ณ ์์ต๋๋ค. ๋ฐ์ดํฐ ์ฐ๋์ ์์ํ ํน์ ๊ณ ๊ฐ์ด ๊ฐ์ง๊ณ ์๋ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ํ๋ฒ์ ๋ฑ๋กํ๊ฒ ๋จ์ผ๋ก์จ ์ด๋ก ์ธํด ํ๋ก์ธ์ค์ ๋ํ ์์ฒญ์ด ๋๋ ค์ง์ด ๋ณด๊ณ ๋๊ณ ์์ต๋๋ค.
ํ๋ก์ธ์ค ์์กด์ฑ์ผ๋ก ์ธํ ๋ฉ์ถค ํ์ โ
KDB+ ์์คํ ์ํคํ ์ฒ๋ ๋ค์์ ํ๋ก์ธ์ค๊ฐ ์ ๊ธฐ์ ์ผ๋ก ํต์ ํ๋ฉฐ ์์คํ ์ ๊ตฌ์ฑํ๋ค๊ณ ํ์์ต๋๋ค. ๊ฐ๋จํ๊ฒ ์คํ๋์๋ ์์คํ ์ด ์ฌ๋ฌ๊ฐ์ง ์ด์ ์ ์ํด์ ๋ณ๋์ ํ๋ก์ธ์ค๊ฐ ์ถ๊ฐ๋จ์ ๋ฐ๋ผ์ ์๊ฐ ๋๋ ์ผ์๋ณ ํํฐ์ ์ ์ฌ์ฉํ๋ HDB ํ๋ก์ธ์ค๋ค์ด ํ๋์ RDB ํ๋ก์ธ์ค์ ๋์ผํ ๋ณ๋์ ํ๋ก์ธ์ค๋ฅผ ์์กดํจ์ ๋ฐ๋ผ์ ์๋ก ์์ฒญ์ด ๋ณ๋ชฉ๋์ด ํ๋ก์ธ์ค๊ฐ ์์ฒญ์ ์ฒ๋ฆฌ์ค์ธ๋ฐ๋ ๋ถ๊ตฌํ๊ณ ํ๋ก์ธ์ค๊ฐ ๋ฉ์ถ๋ ๊ฒ ๊ฐ์ ๋ณด์ด๋ ํ์์ ํ์ธํ์ต๋๋ค. ๊ฐ HDB ํ๋ก์ธ์ค๋ค์ด ์ค์๊ฐ ๋ฐ์ดํฐ ์กฐํ๋ฅผ ์ํด์ ์ค์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ง๋งํ๋ ๋ณ๋์ ์ฝ๊ธฐ ์ ์ฉ RDB ํ๋ก์ธ์ค๋ฅผ ์์กดํ๋๋ก ์ฌ๊ตฌ์ฑํ์๊ณ ์ด๋ฌํ ํ์์ด ์ ์ฐจ์ ์ผ๋ก ์ค์ด๋ค๊ณ ์์ต๋๋ค.
EOH ๋ค์ดํ์ โ
ํฐ์ปคํ๋ํธ๋ ์๊ฐ ๋๋ ์ผ๊ณผ๊ฐ ์ข ๋ฃ๋๋ฉด EOH ๋๋ EOD ์ด๋ฒคํธ๋ฅผ ๋ฐ์ดํฐ ํผ๋ ๊ตฌ๋ ์์๊ฒ ์ ๋ฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํน์ RDB ํ๋ก์ธ์ค๋ ์๊ฐ ๋๋ ์ผ๊ณผ ๋ฐ์ดํฐ๋ฅผ ํ์ฌ ํํฐ์ ์ ๊ธฐ๋กํฉ๋๋ค. ํ๋ก์ธ์ค์์ ๋ฐ์ดํฐ๋ฅผ ํ์ผ๋ก ๊ธฐ๋กํ๊ธฐ์ ์ ์ ๋ ฌ์ ์๋ํ๋ฏ๋ก ๋ฐ์ดํฐ ๊ท๋ชจ์ ์๋ฒ ์ฑ๋ฅ์ ๋ฐ๋ผ์ Downtime์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ค์ดํ์์ ์ต์ํํ๊ธฐ ์ํด์ RDB ํ๋ก์ธ์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋๋ ๋ฐ์ดํฐ ์ ๋ ฌ์ด๋ ์คํ๋ ์ด ํ ์ด๋ธ์ ๋ํ ์์ฑ ๋ถ์ฌ๋ฅผ ์ต์ํํ๊ณ ํํฐ์ ๋ณด์ ์ ์ํํ๋ ๋ณ๋์ ํ๋ก์ธ์ค๋ฅผ ๋์ด์ ํํฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๊ณ ์ฟผ๋ฆฌ ์ต์ ํ๋ฅผ ์ํ ์ปฌ๋ผ์ ์์ฑ์ ๋ถ์ฌํ๋ ์์ ์ ์ํํ๋๋ก ์ถ๊ฐ ๊ตฌ์ฑํ์ต๋๋ค.
์ค์๊ฐ ๋ฐ์ดํฐ์ ๊ณผ๊ฑฐ์ ์๊ณ์ด ๋ฐ์ดํฐ๊ฐ ๋ง์ด ์กด์ฌํ ์ ์๋ ์ผ์ด์ค๊ฐ ๋ฐ์ํ๋ฉด์ ํํฐ์ ์ ๋ค์ ๋ณด์ ํ๋ ์์ ์ ์ํํ๋ ํ๋ก์ธ์ค์ ๋ํ ์์ ๋ ๊ณผ์คํ๋๋ ๊ฒ์ ํ์ธํ๊ณ ์์ต๋๋ค.
์๋ฌด๋ฆฌ ๋น ๋ฅธ ์ฑ๋ฅ์ ์๋ํ๋ ๊ธฐ์ ์ด์ด๋ ์ด๋ค ํ๊ฒฝ์์ ์ฌ์ฉ๋๋์ง์ ์ด๋ป๊ฒ ๊ตฌ์ฑํ์ฌ ์ฌ์ฉํ๋์ง์ ๋ฐ๋ผ์ ๋ง์ ๋ฌธ์ ๋ ์ ์ฝ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ๊ฐ๋จํ๋ ์์คํ ์ด ๋ณต์กํด์ง๋ฉด์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ๊ทธ๊ฒ์ ๋ณด์ํ๊ธฐ ์ํ์ฌ ์ฌ๋ฌ๊ฐ์ง ์๋๋ฅผ ํด๋ณด์์ผํฉ๋๋ค. ์ด์ ์ ๊ฒฝํ์ ํ ๋๋ก ๊ทธ๋ด๋ฆฌ ์๋ค, ๊ทธ๋ด ๊ฐ๋ฅ์ฑ์ ์๋ค๋ผ๋ ๊ด์ ์ ์ฐ๋ฆฌ๋ฅผ ํ๋ค๊ฒํ ์ ์์ต๋๋ค. ๊ธฐ์ ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด ๋์ผํ์ง ์์์ ์ธ์ ํ๊ณ ๊ทธ๊ฒ์ผ๋ก๋ถํฐ ์ผ๊ธฐ๋๋ ๋ฌธ์ ์ ์ ์๋์ง ์ง์์ ์ผ๋ก ๊ฒํ ํด์ผํฉ๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ๋ ์ฅ์ ๋์ ๋๋ ํ์ ์กฐ์น๋ผ๊ณ ๋งํฉ๋๋ค.