All pages
1 of 1

Loading...

์ œํ’ˆ ์„ค๊ณ„

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

ProSync Architecture

๊ทธ๋ฆผ 1. ProSync Architecture

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

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

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


Data Flow

๊ทธ๋ฆผ 2. ProSync DataFlow

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

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

์ฐธ๊ณ 

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


Inter Processes/Threads Communication

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 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
'์šด์˜ ๊ฐ€์ด๋“œ'