All pages
1 of 4

Loading...

Loading...

Loading...

Loading...

์ œํ’ˆ ์†Œ๊ฐœ

Change Data Capture(์ดํ•˜ CDC)๋Š” ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ peer ์ธก ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋ฐ์ดํ„ฐ์—๋Š” ์ •ํ˜• ๋ฐ์ดํ„ฐ, ๋ฐ˜์ •ํ˜• ๋ฐ์ดํ„ฐ ํ˜น์€ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•œ๋‹ค.

์ผ๋ฐ˜์ ์ธ Migration ์†”๋ฃจ์…˜๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ CDC๋Š” ๋ณ€๊ฒฝ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋งŒ ์ „๋‹ฌํ•จ์œผ๋กœ์จ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ์ ์–ด Throughput ๋“ฑ์— ์žˆ์–ด์„œ ํฐ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.


ProSync๋Š” TmaxTibero์˜ CDC ์†”๋ฃจ์…˜์ด๋‹ค. ํ˜„์žฌ ์ œ๊ณต๋˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์ •ํ˜• ๋ฐ์ดํ„ฐ, ์ฆ‰ RDBMS์— ๋Œ€ํ•œ ๋™๊ธฐํ™”๋งŒ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์‹ค์‹œ๊ฐ„์„ฑ์ด ๋†’๊ณ , ์ด๋ ฅ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•œ ์žฅ์• ๋ณต๊ตฌ๋‚˜ ProSync Manager๋ฅผ ํ†ตํ•œ ์ •ํ•ฉ์„ฑ ๊ฒ€์‚ฌ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.

Change Data Capture

์ฐธ๊ณ 

์ •ํ˜• ๋ฐ์ดํ„ฐ๋Š” ๋ณดํ†ต RDBMS์— ์ €์žฅ๋˜๋Š” ํ…Œ์ด๋ธ”์„ ์˜๋ฏธํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฉฐ, ๋ฐ˜์ •ํ˜• ๋ฐ์ดํ„ฐ๋Š” Json์ด๋‚˜ XML ํ˜น์€ NoSQL ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ์˜๋ฏธํ•œ๋‹ค.

๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋Š” ๋”ฐ๋กœ ํ˜•์‹์ด ์—†๋Š” ๋ชจ๋“  ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์ด๋Š” ๋ชจ๋“  ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ๋“ค์„ ํฌํ•จํ•œ๋‹ค.

ProSync

์ฐธ๊ณ 

์ œํ’ˆ ์„ค๊ณ„์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ๋‚ด์šฉ์€ ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. โ€‹

'์ œํ’ˆ ์„ค๊ณ„'

์ œํ’ˆ ๊ตฌ์„ฑ๋„

์ œํ’ˆ ์†Œ๊ฐœ์™€ ์ œํ’ˆ ์„ค๊ณ„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ProSync๊ฐ€ ์–ด๋–ค ๊ตฌ์„ฑ์œผ๋กœ ์„ค์น˜๋˜๊ณ  ์šด์˜๋˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ตฌ์„ฑ๋„๋ฅผ ์„ค๋ช…ํ•œ๋‹ค.

์•ž์„œ ์„ค๋ช…ํ•œ ํ”„๋กœ์„ธ์Šค ๊ฐœ์š” ๋ฐ ์„ค๊ณ„ ๊ตฌ์กฐ๊ฐ€ ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ ๋‚ด ๊ตฌ์„ฑ์— ์ ์šฉ๋˜๋Š” ์‚ฌํ•ญ์„ ์ดํ•ดํ•˜๋ฉฐ ์„ค์น˜ ์ ˆ์ฐจ ๋ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฐธ๊ณ 

Single ๊ณผ Cluster DB

ProSync์—์„œ Single์ด๋ž€ Cluster๊ฐ€ ์•„๋‹Œ DB๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ProSync ๊ด€์ ์—์„œ์˜ Cluster DB๋ž€ Active-Active Cluster๊ฐ€ ๊ฐ€๋Šฅํ•œ RDBMS๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ๋‹จ ๋‘ ๊ฐ€์ง€ ์ œํ’ˆ๊ตฐ๋งŒ์ด ์ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

Tibero Active Cluster (TAC)์™€ Oracle์˜ Real Application Clusters(RAC) ๋ฅผ ์˜๋ฏธํ•œ๋‹ค๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฐธ๊ณ 

Process์˜ ๊ธฐ๋™ ์œ„์น˜

Extract ํ”„๋กœ์„ธ์Šค๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋Š” ๊ธฐ๋™ ์œ„์น˜์— ๊ด€๊ณ„์—†๋‹ค. Extract ํ”„๋กœ์„ธ์Šค๋Š” ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ๋ถ„์ด ๋ฐ˜๋“œ์‹œ ํ•ด๋‹น ์„œ๋ฒ„์˜ disk์— ๋‚จ๊ธฐ๊ธฐ ๋•Œ๋ฌธ์— ์ถ”์ถœํ•˜๊ณ ์ž ํ•˜๋Š” ์„œ๋ฒ„์— ๊ธฐ๋™๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ์ œ์•ฝ์กฐ๊ฑด์ด ์žˆ๋‹ค.

๋˜ํ•œ ProSync๋Š” ํ˜„์žฌ DBMS์— ๋Œ€ํ•œ ๋ฐ˜์˜๋งŒ์„ ์ง€์›ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ด ๋•Œ๋ฌธ์— SQL๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋Š” Llob ํ”„๋กœ์„ธ์Šค๋‚˜ Apply ํ”„๋กœ์„ธ์Šค ์ž…์žฅ์—์„œ๋Š” ๊ธฐ๋™ ์œ„์น˜์— ํฐ ์ œ์•ฝ์ด ์—†๋‹ค.

๋‹ค๋งŒ ๋ณ€๊ฒฝ๋ถ„์˜ ๋ฐ์ดํ„ฐ์—์„œ SQL๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  TCP ์†Œ์ผ“์„ ํ†ตํ•ด ๋ฐ˜์˜ ์ธก์— ์ „๋‹ฌํ•˜๋ฉด ๋„คํŠธ์›Œํฌ ์“ฐ๋ฃจํ’‹ ๊ด€์ ์—์„œ ํฌ๊ฒŒ ์†ํ•ด๋ฅผ ๋ณด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•˜๋ฉด Apply๋Š” ๋ฐ˜์˜ํ•˜๊ณ ์ž ํ•˜๋Š” ์œ„์น˜์—, Llob ํ”„๋กœ์„ธ์Šค ๋˜ํ•œ ์ถ”์ถœํ•˜๊ณ ์ž ํ•˜๋Š” ์œ„์น˜์— ๊ธฐ๋™์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

Cluster์˜ ๊ฒฝ์šฐ Llob ํ”„๋กœ์„ธ์Šค๋Š” ๋‘ ์œ„์น˜ ์ค‘ ์•„๋ฌด ๊ณณ์—๋‚˜ ๊ธฐ๋™๋˜์–ด๋„ ๋œ๋‹ค.

Single to Single ๊ตฌ์„ฑ ์˜ˆ์‹œ

์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์„ฑ์„ ๊ถŒ์žฅํ•œ๋‹ค.

๊ทธ๋ฆผ 1. Single to Single 1

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ”„๋กœ์‹ฑํฌ์˜ ๊ตฌ์„ฑ๋„๋กœ, ์ถ”์ถœํ•˜๊ณ ์ž ํ•˜๋Š” ์œ„์น˜์— ๊ด€๋ จ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ธฐ๋™๋˜๊ณ , ๋ฐ˜์˜ํ•˜๊ณ ์ž ํ•˜๋Š” ์œ„์น˜์— ๋ฐ˜์˜ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ธฐ๋™๋˜๋Š” ๊ตฌ์กฐ์ด๋‹ค. Agent ํ”„๋กœ์„ธ์Šค์˜ ๊ฒฝ์šฐ ํ”„๋กœ์„ธ์Šค๋“ค์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ™˜๊ฒฝ๋ณ„๋กœ 1๊ฐœ์”ฉ ๊ธฐ๋™๋œ๋‹ค.

ํŽธ์˜๋ฅผ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์„ฑ ๋˜ํ•œ ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ทธ๋ฆผ 2. Single to Single 2

๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ถ”์ถœ์ชฝ์œผ๋กœ ์˜ฎ๊ฒจ๋†“์€ ๊ตฌ์„ฑ์œผ๋กœ, ์„ค์น˜ ๋ฐ ์šด์˜์ด ๋งค์šฐ ๊ฐ„๋‹จํ•˜๋‹ค. ํ•˜์ง€๋งŒ Apply๊ฐ€ Target์ชฝ์— ์ฟผ๋ฆฌ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค๋Š” ์ธก๋ฉด์—์„œ ๋„คํŠธ์›Œํฌ ์“ฐ๋ฃจํ’‹์— ์†ํ•ด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•˜๋“œ์›จ์–ด ์ž์›๋“ค๋„ ๋ชจ๋‘ ๊ณต์œ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ถŒ์žฅ๋˜๋Š” ๊ตฌ์„ฑ์€ ์•„๋‹ˆ๋‹ค.


Active-Active ๊ตฌ์„ฑ์˜ Cluster DB๋Š” Shared Storage๊ฐ€ ํ•„์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์—, Shared Storage์™€ DB Server๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์ž‘์„ฑํ•œ๋‹ค.

๋ฐ˜์˜ ์ชฝ์ด Cluster์ธ์ง€ ์—ฌ๋ถ€๋Š” ํฌ๊ฒŒ ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค. ๊ฐ DB๋ณ„ ์—ฐ๊ฒฐ์ •๋ณด ํŒŒ์ผ (tnsnames.ora ๋‚˜ tbdns.tbr ํŒŒ์ผ ๋“ฑ) ์„ ํ†ตํ•ด Cluster ์ชฝ ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ์ถ”์ƒํ™”ํ•˜์—ฌ ์ ‘์†ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋Š” DB์™€ ์—ฐ๊ฒฐ๋งŒ ๋˜๋ฉด ๋œ๋‹ค.

์ œํ’ˆ ์„ค๊ณ„

ProSync ์ œํ’ˆ ์ดํ•ด๋ฅผ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ์„ค๊ณ„ ์ž๋ฃŒ๋ฅผ ์•ˆ๋‚ดํ•œ๋‹ค.

ProSync๋Š” ์œ„์™€ ๊ฐ™์€ ์„ค๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ „์ฒด ์„ค๊ณ„์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์š”์•ฝ์„ ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

Extract ํ”„๋กœ์„ธ์Šค๋Š” SRC DB์— ํ•ด๋‹นํ•˜๋Š” ์ถ”์ถœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค( SRC DB ) ์—์„œ Redo Log ๋ฅผ ์ถ”์ถœํ•œ๋‹ค. ์ถ”์ถœ์€ ๊ฐ DB๋ณ„ Log Reader Library ๋ฅผ ํ†ตํ•ด ์ง„ํ–‰ํ•˜๋ฉฐ, ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ๊ฐ DB๋ณ„๋กœ ์ œ๊ณตํ•˜๋Š” ๋ณ„๋„์˜ ๋กœ๊ทธ ๋ถ„์„ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ถ”์ถœ์„ ์ง„ํ–‰ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ์ถ”์ถœ๋œ ๋ฐ์ดํ„ฐ๋Š” Apply ํ”„๋กœ์„ธ์Šค๋กœ ์ „๋‹ฌ๋œ๋‹ค.

๋ฐ์ดํ„ฐ๋Š” ๋ณดํ†ต ๋ ˆ์ฝ”๋“œ ๋‹จ์œ„ (์‰ฝ๊ฒŒ ๋งํ•ด DML ๋‹จ์œ„)๋กœ ๋‚จ๊ฒŒ ๋˜๋ฉฐ, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋Š” Apply ํ”„๋กœ์„ธ์Šค์—์„œ ํŠธ๋žœ์žญ์…˜๋ณ„๋กœ ์ทจํ•ฉํ•ด ๋ฐ˜์˜ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ Apply ํ”„๋กœ์„ธ์Šค๋Š” ๋ ˆ์ฝ”๋“œ๋“ค์„ ์ „๋‹ฌ๋ฐ›์•„ ํŠธ๋žœ์žญ์…˜๋ณ„๋กœ ๋ชจ์•„๋‘”๋‹ค. commit์— ํ•ด๋‹นํ•˜๋Š” ๋ ˆ์ฝ”๋“œ ๊ฐ€ ์˜ค๊ฒŒ๋˜๋ฉด, ํŠธ๋žœ์žญ์…˜์„ ๋ฐ˜์˜์‹œํ‚จ๋‹ค.


ProSync์˜ Data Flow๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์‚ดํŽด๋ณด๋ฉด ์กฐ๊ธˆ ๋” ์ƒ์„ธํ•œ ๊ณผ์ •์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

Extract ํ”„๋กœ์„ธ์Šค๋Š” ๋ ˆ์ฝ”๋“œ ๋ฅผ chunk ๋‹จ์œ„๋กœ ๋ชจ์•„ Apply ํ”„๋กœ์„ธ์Šค๋กœ ์ „๋‹ฌํ•œ๋‹ค. ์ „๋‹ฌ๋ฐ›์€ Apply ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ ๋ ˆ์ฝ”๋“œ ๋“ค์„ ํŠธ๋žœ์žญ์…˜ ๋‹จ์œ„๋กœ ๋ชจ์•„์ค€๋‹ค. commit ๋ ˆ์ฝ”๋“œ๊ฐ€ ์˜ฌ ๊ฒฝ์šฐ ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(TAR DB) ๋กœ ๋ฐ˜์˜ํ•˜๊ฒŒ ๋œ๋‹ค.


ProSync๋Š” ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ์€ TCP๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์Šค๋ ˆ๋“œ ๊ฐ„ ํ†ต์‹ ์€ Pipe๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์–ด๋–ค ์ข…๋ฅ˜์˜ ํ”„๋กœ์„ธ์Šค๊ฑด, Main ์“ฐ๋ ˆ๋“œ๋Š” ๋ฐ˜๋“œ์‹œ ์กด์žฌํ•˜๊ณ  (ProSync์—์„  CTH ํ˜น์€ Control Thread ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.) ํ•ด๋‹น ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋‹ค๋ฅธ ์“ฐ๋ ˆ๋“œ์™€์˜ ํ†ต์‹ ์„ ๋ชจ๋‘ ๋‹ด๋‹นํ•œ๋‹ค. ์ฆ‰, A๋ผ๋Š” ์“ฐ๋ ˆ๋“œ์—์„œ B๋ผ๋Š” ์“ฐ๋ ˆ๋“œ์™€ ์ง์ ‘ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ , ๋ฐ˜๋“œ์‹œ Main ์“ฐ๋ ˆ๋“œ๋ฅผ ๊ฑฐ์ณ์„œ ํ†ต์‹ ํ•˜๊ฒŒ ๋˜์–ด ์žˆ๋‹ค.

๋˜ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ„ ํ†ต์‹ ์—์„  TCP ๋กœ๋งŒ ํ†ต์‹ ์„ ์ง„ํ–‰ํ•˜๊ฒŒ๋˜๋ฉฐ, ์ด์— ๋Œ€ํ•œ ์†Œ์ผ“์˜ connect ์™€ accept ๋Š” ๋ชจ๋‘ ๊ฐ ํ”„๋กœ์„ธ์Šค์˜ Main ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋‹ด๋‹นํ•œ๋‹ค.


์ „์ฒด ํ”„๋กœ์„ธ์Šค๋“ค์˜ ๊ธฐ๋Šฅ๊ณผ ๊ตฌ์กฐ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•œ๋‹ค.

Data Flow ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ–ˆ๋˜ ํ”„๋กœ์„ธ์Šค๋Š” ์ฃผ๋กœ Extract ํ”„๋กœ์„ธ์Šค์™€ Apply ํ”„๋กœ์„ธ์Šค์ด๋‹ค. ์ด ๋‘ ํ”„๋กœ์„ธ์Šค๊ฐ€ ProSync์˜ ํ•ต์‹ฌ ํ”„๋กœ์„ธ์Šค์ด๋‚˜, ํ”„๋กœ์„ธ์Šค ์ „์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ๋ชจ๋‹ˆํ„ฐ๋ง ํˆด์— ์ „๋‹ฌํ•ด์ฃผ๋Š” ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ํ•ด์ฃผ๋Š” Agent ํ”„๋กœ์„ธ์Šค๋‚˜ Long ํ˜น์€ Lob ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๋ณ„๋„๋กœ ๊ตฌ์„ฑ๋œ Llob ํ”„๋กœ์„ธ์Šค, Agent ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด ์‹ค์ œ ํ”„๋กœ์„ธ์Šค์— ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋Š” Admin ํ”„๋กœ์„ธ์Šค์˜ ๊ตฌ์„ฑ์„ ์ดํ•ดํ•˜๋ฉด ์ดํ›„์— ์–ธ๊ธ‰๋˜๋Š” ๋‚ด์šฉ์„ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค.

์ „์ฒด ๊ตฌ์„ฑ์„ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

๊ฐ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์—ญํ• ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

Agent ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ๋ช…๋ น์„ ๋‚ด๋ฆฐ๋‹ค. Agent ์—๊ฒŒ ๋‚ด๋ฆฐ ๋ช…๋ น๊ณผ ๋ฆฌํ„ด์„ ํ„ฐ๋ฏธ๋„์—์„œ ์ถœ๋ ฅํ•œ๋‹ค๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ช…๋ น์–ด ๋ชฉ๋ก์€ ๋ฉ”๋‰ด์–ผ์„ ์ฐธ๊ณ ํ•œ๋‹ค.

ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์— ๋“ค์–ด๊ฐ€๋Š” ๋‹ค์–‘ํ•œ ์—…๋ฌด๋ฅผ ์—ฌ๊ธฐ์„œ ๋ชจ๋‘ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์€ ์ž‘์—…๋“ค์ด ์žˆ๋‹ค.

  • ํ”„๋กœ์„ธ์Šค ๊ธฐ๋™ / ์ข…๋ฃŒ

  • ํ”„๋กœ์„ธ์Šค ๋ณ„ ๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง

  • ํ”„๋กœ์„ธ์Šค ์„ค์ • ๋ณ€๊ฒฝ

์ด์™ธ์—๋„ ๊ด€๋ฆฌ์— ํ•ด๋‹นํ•˜๋Š” ์ž‘์—…์€ ๋ชจ๋‘ ์ด๊ณณ์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์ค€๋‹ค.

CDC ์— ์žˆ์–ด์„œ ๋ณ€๊ฒฝ ๋ฐ์ดํ„ฐ๋ฅผ ์บก์ณํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ด๋‹ค. ํ˜„์žฌ๋Š” RDBMS์˜ ๋ฆฌ๋‘๋กœ๊ทธ๋ฅผ ๋ณด๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ peer์ชฝ์— ๋ฐ˜์˜ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

RDBMS์—์„œ ์‚ฌ์šฉ๋˜๋Š” Long ํ˜น์€ Lob ๊ณผ ๊ฐ™์€ ํฐ ๋‹จ์œ„์˜ ๋ฐ์ดํ„ฐ๋Š” ๋ณ€๊ฒฝ๋ถ„์˜ ๋ฐ์ดํ„ฐ๋„ ํฌ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฆฌ๋‘์— ๋‚จ๋Š”๋‹ค ํ•˜์—ฌ๋„, ํŠธ๋žœ์žญ์…˜ ๋ง๋ฏธ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๊ฐ€ ๋˜๊ฑฐ๋‚˜ ํ˜น์€ ํฌ๊ฒŒ ๋ณ€๊ฒฝ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

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

Llob ํ”„๋กœ์„ธ์Šค์—์„œ ์ฃผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ์ผ์€ Commit ์ด ๋“ค์–ด์˜จ ์‹œ์ ์— Flashback ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ํ•ด๋‹น ์‹œ์  ์ฆ‰ ํŠธ๋žœ์žญ์…˜์ด ์ข…๋ฃŒ๋˜๋Š” ์‹œ์ ์—์„œ์˜ ๋ฐ์ดํ„ฐ๋งŒ ์กฐํšŒํ•˜์—ฌ Apply ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์ค„์ด๊ณ , ์ „์ฒด ๋™๊ธฐํ™” ๊ณผ์ •์—์„œ์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์—ฌ์ฃผ๋Š” ํ”„๋กœ์„ธ์Šค์ด๋‹ค.

ProSync Architecture

Data Flow

์ฐธ๊ณ 

๋”์šฑ ์ƒ์„ธํ•œ ๋‚ด์šฉ์€ ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.

Inter Processes/Threads Communication

๊ทธ๋ฆผ 1. ProSync Architecture
๊ทธ๋ฆผ 2. ProSync DataFlow

Cluster to Single/Cluster ๊ตฌ์„ฑ ์˜ˆ์‹œ

์ฐธ๊ณ 

Admin๊ณผ ProSync Manager

์œ„ ๋‘ ํ”„๋กœ์„ธ์Šค๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ๊ด€๋ จ๋œ ํˆด๋กœ Agent์™€ ์—ฐ๊ฒฐ๋งŒ ๋œ๋‹ค๋ฉด ์–ด๋””์— ๊ธฐ๋™๋˜์–ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค.

๊ทธ๋ฆผ 3. Cluster ๊ตฌ์„ฑ

ProSync Processes

์ฐธ๊ณ 

๊ฐ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.

Admin Process

Agent Process

Extract Process

Apply Process

Llob Process

Admin
'Memory Control'
๊ทธ๋ฆผ 3. Inter process & Inter thread communication in Prosync.
๊ทธ๋ฆผ4. Prosync Processes

ProSync ์†Œ๊ฐœ

ProSync ์ œํ’ˆ ์†Œ๊ฐœ ๋ฐ ์„ค๊ณ„ ๋‚ด์šฉ์„ ์•ˆ๋‚ดํ•œ๋‹ค.

'์šด์˜ ๊ฐ€์ด๋“œ'