/
Cluster Edition

Cluster Edition

Cluster Edition์€, ๋น ๋ฅธ ์ž…๋ ฅ ์†๋„์™€ ํ‘œ์ค€ SQL๋กœ ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•œ Machbase Fog Edition ์œผ๋กœ๋„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ์ดˆ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ/์กฐํšŒ๋ฅผ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ œํ’ˆ์ด๋‹ค.


์™œ Cluster Edition์„ ์จ์•ผ ํ•˜๋Š”๊ฐ€?


Machbase ์ดˆ๊ณ ์†์œผ๋กœ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” Fog Edition ์„ ์„œ๋น„์Šคํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ๋‹ค์Œ์˜ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค.

  • ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ€์šฉ์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•  ๋•Œ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ „๋‹ดํ•˜๋ฏ€๋กœ, ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์„ฑ๋Šฅ์„ ๋Š˜๋ฆฌ๋Š” ๋ฐ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.

์œ„์˜ ๋‹จ์ ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด, ์ฆ‰ ๊ฐ€์šฉ์„ฑ์„ ํ™•๋ณดํ•˜๊ณ  ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถ„์„ํ•˜๋Š”๋ฐ ํ™•์žฅ์„ฑ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ์ œํ’ˆ๊ตฐ์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋Ÿฐ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด Machbase Cluster Edition ์ด๋‹ค.


์šฉ์–ด


Host

๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„ 1๋Œ€, ๋˜๋Š” ํด๋ผ์šฐ๋“œ/VM ์—์„œ์˜ OS ์ธ์Šคํ„ด์Šค 1๋Œ€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.


Node

์„œ๋ฒ„์— ์ƒ์ฃผํ•˜๋Š” Machbase Process ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

Process ํƒ€์ž…์€ ์•„๋ž˜์˜ Node Type ๊ณผ ๋™์ผํ•˜๋‹ค.

  • Coordinator
  • Deployer
  • Lookup
  • Broker
  • Warehouse



๊ตฌ์กฐ


Machbase Cluster Edition ์€, Host ์— ์ƒ์ฃผํ•˜๋Š” ์—ฌ๋Ÿฌ Node ๊ฐ€ ํ•˜๋‚˜์˜ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค.

๊ณ ๊ฐ€์šฉ์„ฑ

๋‚ด๋ถ€์˜ ๋ชจ๋“  Node ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ค‘๋‹จ๋˜์–ด๋„ ์„œ๋น„์Šค๊ฐ€ ์ง€์†๋  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

๊ณ ํ™•์žฅ์„ฑ

๋ฐ์ดํ„ฐ ์ €์žฅ์„ ๋ถ„์‚ฐํ•  ์ˆ˜ ์žˆ๊ณ , ๋ถ„์‚ฐ๋œ ๋ฐ์ดํ„ฐ์—์„œ ๋ณ‘๋ ฌ ๋ถ„์„์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํ™•์žฅํ•  ์ˆ˜
๋ก ์„ฑ๋Šฅ์ด ์ฆ๊ฐ€ํ•œ๋‹ค.

Node์˜ ๋ถ„๋ฅ˜

๊ฐ Node๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ถ„๋ฅ˜์„ค๋ช…ํ”„๋กœ์„ธ์Šค ์ด๋ฆ„
Coordinator๋ชจ๋“  ๋ฒ”์šฉ ์„œ๋ฒ„์™€ Node๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค.machcoordinatord
Deployer

Host ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ์ƒ์ฃผํ•˜๋Š” ํ”„๋กœ์„ธ์Šค.

Broker/Warehouse ์˜ ์„ค์น˜์™€ ์—…๊ทธ๋ ˆ์ด๋“œ, ์ƒํƒœ ๊ด€์ฐฐ์„ ๋‹ด๋‹นํ•œ๋‹ค.

machdeployerd
LookupLookup ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค.machlookupd
Broker

์‹ค์ œ ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์„ ๋งž์ดํ•˜๋Š” ํ”„๋กœ์„ธ์Šค.

ํด๋ผ์ด์–ธํŠธ์˜ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ/๋ฐ์ดํ„ฐ ์กฐํšŒ ์ฟผ๋ฆฌ๋ฅผ Warehouse ์— ๋ถ„์‚ฐ ์ˆ˜ํ–‰์‹œํ‚ค๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

machbased
Warehouse

์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค.

์ „์ฒด ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ์ดํ„ฐ ์ค‘ ์ผ๋ถ€๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, Broker ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

machbased

Coordinator

Coordinator๋Š” ๋ชจ๋“  Node์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” Process๋กœ, ์ตœ๋Œ€ 2๊ฐœ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

๋จผ์ € ์ƒ์„ฑ๋œ Coordinator๋ฅผ Primary Coordinator, ๊ทธ ๋‹ค์Œ์„ Secondary Coordinator๋ผ ํ•˜๊ณ  Primary Coordinator๋งŒ์ด ๋ชจ๋“  Node์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.

Primary Coordinator๊ฐ€ ์ข…๋ฃŒํ•˜๋ฉด Secondary Coordinator๊ฐ€ Primary Coordinator๋กœ ๊ฒฉ์ƒ๋œ๋‹ค.


Special Node : Deployer

Coordinator์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜์ง€๋งŒ, ๋‹จ์ˆœํžˆ Broker/Warehouse/Lookup Node์˜ ์„ค์น˜/์ œ๊ฑฐ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” Process ์ด๋‹ค.
๋ณดํ†ต์€ Node ๋ฅผ ์„ค์น˜ํ•  Host ์— 1๋Œ€์”ฉ ์ถ”๊ฐ€ํ•˜์ง€๋งŒ, ์„ค์น˜ ์„ฑ๋Šฅ์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ Deployer๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์„œ๋ฒ„์—์„œ ์„ค์น˜ ์˜ˆ์ œ

์•„๋ž˜ ๊ทธ๋ฆผ(a)๋Š”, ๋ฒ”์šฉ ์„œ๋ฒ„ 4๋Œ€์— 2๊ฐœ์˜ Coordinator, 2๊ฐœ์˜ Broker, 4๊ฐœ์˜ Warehouse Active, 4๊ฐœ์˜ Warehouse Standby Node๋ฅผ ์„ค์น˜ํ•œ ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค.
๊ทธ๋ฆผ ์ฒ˜๋Ÿผ, ๋ฒ”์šฉ ์„œ๋ฒ„์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„๊ณผ ํ• ๋‹น๋œ ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ์ด์–ด์ง„ 'hostname:port' ๋กœ ๊ฐ Node๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.


Lookup

Lookup์€ Lookup Table ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์กด์žฌํ•œ๋‹ค.



Broker

 Broker๋Š” ๋ง ๊ทธ๋Œ€๋กœ Client์˜ ๋ช…๋ น์„ Warehouse์—๊ฒŒ ์ „๋‹ฌํ•˜๊ณ , Warehouse์˜ ๊ฒฐ๊ณผ๋ฅผ Client์— ๋ชจ์•„์„œ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

  • ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ์‹œ, Broker๋Š” Warehouse์—๊ฒŒ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์„ ๊ณจ๊ณ ๋ฃจ ๊ฐ€๋„๋ก ํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์กฐํšŒ ์‹œ, Broker๋Š” Warehouse์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•œ ๋’ค์— ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„์„œ ์ „๋‹ฌํ•œ๋‹ค.

Broker๋Š” Log Table์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์ง€๋งŒ, Volatile Table์˜ ๋ฐ์ดํ„ฐ๋Š” ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋‹ค.


Warehouse

Warehouse ๋Š” Log Table ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ €์žฅํ•˜๊ฒŒ ๋˜๊ณ , Broker๊ฐ€ ์ „๋‹ฌํ•œ ๋ช…๋ น์„ ์‹ค์ œ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

Broker ์ฒ˜๋Ÿผ Warehouse ์—๋„ ์ง์ ‘ ํด๋ผ์ด์–ธํŠธ ์ ‘์†์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๋ฐ์ดํ„ฐ ์ž…๋ ฅ/๊ฐฑ์‹ /์‚ญ์ œ๋Š” ํ•  ์ˆ˜ ์—†๊ณ  ์˜ค๋กœ์ง€ ํ•ด๋‹น Warehouse ๋ฐ์ดํ„ฐ ์กฐํšŒ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.


Warehouse Group

Warehouse ๋Š”, ์ž์‹ ์ด ์†ํ•  Group ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Broker ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ, ๊ฐ™์€ Group ์— ์žˆ๋Š” ๋ชจ๋“  Warehouse๋Š” ๋™์ผํ•œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
  • Group ์˜ ํŠน์ • Warehouse ๊ฐ€ ํƒˆ๋ฝํ•˜๋”๋ผ๋„, ๋ฐ์ดํ„ฐ ์กฐํšŒ๋Š” ์ด์ƒ ์—†๋‹ค.
  • Group ์— ์ƒˆ๋กœ์šด Warehouse ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด, ์ด์ค‘ํ™” (Replication) ๋ฅผ ํ†ตํ•ด ๋™์ผํ•œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

Warehouse Group ์˜ ์ƒํƒœ

์ƒํƒœINSERT / APPENDSELECT
NormalOO
ReadonlyXO

Readonly ์ƒํƒœ๋กœ ๋ณ€ํ•˜๋Š” ์กฐ๊ฑด์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • INSERT/APPEND ๋„์ค‘, Group ์˜ ์ผ๋ถ€ Warehouse ๊ฐ€ ์ž…๋ ฅ์— ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ
    • ์‹คํŒจํ•œ Warehouse ์™€ ์„ฑ๊ณตํ•œ Warehouse ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—,
      ์‹คํŒจํ•œ Warehouse ๋Š” Scrapped ์ƒํƒœ๋กœ ๋งŒ๋“ค๊ณ  ํ•ด๋‹น Group ์€ ๋” ์ด์ƒ์˜ ์ž…๋ ฅ์„ ๋ฐ›์ง€ ์•Š๊ธฐ ์œ„ํ•ด Readonly ์ƒํƒœ๋กœ ์ „ํ™˜๋œ๋‹ค. (warning)
  • ์ƒˆ๋กœ์šด Warehouse ๊ฐ€ ์ถ”๊ฐ€๋œ ๊ฒฝ์šฐ
    • ์ด์ค‘ํ™” ๊ณผ์ •์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ์—๋„ ์ž…๋ ฅ์„ ๋ฐ›๊ฒŒ ๋˜๋ฉด, ์ด์ค‘ํ™” ๋์„ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— Readonly ์ƒํƒœ๋กœ ์ „ํ™˜๋œ๋‹ค. (warning)


Node์˜ Port ๊ด€๋ฆฌ

๊ฐ Node๋Š” Port๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์—ด์–ด๋‘๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ๋ถ„๋œ๋‹ค.

Port ๊ตฌ๋ถ„์„ค๋ช…ํ•„์š”ํ•œ Node
Cluster PortNode ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•œ Port๋ชจ๋“  Node
Service Portํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ง์ ‘ ์ ‘์†ํ•˜๊ฒŒ ๋˜๋Š” PortBroker / Warehouse
Admin Port๊ด€๋ฆฌ ๋ชฉ์ ์œผ๋กœ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ PortCoordinator / Deployer
Replication Port

Warehouse ๊ฐ„์— Replication ์šฉ ํ†ต์‹ ์„ ์œ„ํ•œ Port

Warehouse

์ง์ ‘ ์ ‘์† ํ›„, ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น

๋‹ค์Œ์€ ๊ฐ Node์— ์ง์ ‘ ์ ‘์†ํ•ด์„œ, ๋ช…๋ น ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ๊ณผ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์„ ํ‘œ๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค.
๋ชจ๋“  Node๋Š” Client ๋ฅผ ํ†ตํ•œ ์ ‘์†์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, Node ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ฟผ๋ฆฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค.


Broker (Leader)Broker (non-leader)Warehouse Standby
Client ์ ‘์†OOO
DDLOXX
DELETEOOX
INSERTOOX 1)
APPENDOOX 1)
SELECTOOO


๋ฐ์ดํ„ฐ ์ €์žฅ/์กฐํšŒ


Machbase Cluster Edition ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ ์ €์žฅํ•˜๊ณ , ๋ถ„์‚ฐ ์ฟผ๋ฆฌ ์ˆ˜ํ–‰์œผ๋กœ ๊ณ„์‚ฐ๋˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ํ…Œ์ด๋ธ” ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ์ €์žฅ๋˜๊ณ  ์กฐํšŒ๋˜๋Š”์ง€ ์„ค๋ช…ํ•œ๋‹ค.

๋ฐ์ดํ„ฐ ์ €์žฅ

Log Table

Broker๋ฅผ ํ†ตํ•ด Log Table์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ, ๋ชจ๋“  Warehouse์— ๋ถ„์‚ฐ ์ €์žฅ๋œ๋‹ค. (์ž…๋ ฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” Broker์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค.) Coordinator๊ฐ€ ๊ฐ Warehouse์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํฌ๊ธฐ๋ฅผ ํŒ๋‹จ, ๊ทธ ๊ธฐ์ค€์œผ๋กœ Broker๊ฐ€ ๋ถ„์‚ฐ ์ €์žฅํ•œ๋‹ค.

Warehouse๋ฅผ ํ†ตํ•ด ์ง์ ‘ Log Table์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น Warehouse์—๋งŒ ์ €์žฅ๋œ๋‹ค. ๋ถ„์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋„คํŠธ์›Œํฌ ๋ณ‘๋ชฉ์œผ๋กœ ์ธํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ํ”ผํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ์— ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

Volatile Table

Broker๋ฅผ ํ†ตํ•ด Volatile Table์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น Broker์— ์ €์žฅ๋œ๋‹ค. ์ฆ‰, ๋‹ค๋ฅธ Broker์—๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ๋˜์ง€ ์•Š๊ณ  ๋™๊ธฐํ™”๋˜์ง€๋„ ์•Š๋Š”๋‹ค.

Volatile Table์— ๋Œ€ํ•œ ์ด์ค‘ํ™”๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š”, DELETE๊ฐ€ ๊ฐ€๋Šฅํ•œ Volatile Table์˜ ํŠน์„ฑ์— ๋งž์ถ”๋ฉด ์ด์ค‘ํ™” ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Volatile Table์€ Broker์—์„œ๋งŒ ์ƒ์„ฑ๋˜๋ฏ€๋กœ, Warehouse์—์„œ ์ž…๋ ฅํ•  ์ˆ˜ ์—†๋‹ค.

Lookup Table

Broker๋ฅผ ํ†ตํ•ด Lookup ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ, ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋Š” Lookup ๋…ธ๋“œ์—์— ์ €์žฅ๋˜๋ฉฐ, Replication์„ ํ†ตํ•ด ๋‹ค๋ฅธ Broker๋“ค์—๊ฒŒ ๋ณต์ œ๋œ๋‹ค.

Tag Table

Log ํ…Œ์ด๋ธ”์˜ ์ €์žฅ ๋ฐฉ์‹๊ณผ ๋™์ผํ•˜๋‹ค. ๋‹จ, ์‹ ๊ทœ TagID๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ Leader Broker๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.


๋ฐ์ดํ„ฐ ์กฐํšŒ

Log Table

Broker๋ฅผ ํ†ตํ•ด Log Table์— ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ฒฝ์šฐ, ๋ชจ๋“  Warehouse์— ์ฟผ๋ฆฌ๊ฐ€ ๋ถ„์‚ฐ๋œ๋‹ค. ๊ฐ Warehouse๋Š” ์ฟผ๋ฆฌ๋ฅผ ์‹ค์ œ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ, ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—” Warehouse ๊ฐ„ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ ๊ตํ™˜ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ƒ์„ฑ๋œ ๋ถ€๋ถ„ ๊ฒฐ๊ณผ๋ฅผ Broker๊ฐ€ ์ˆ˜์ง‘, ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Warehouse๋ฅผ ํ†ตํ•ด Log Table์— ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น Warehouse์—์„œ๋งŒ ์ฟผ๋ฆฌ๊ฐ€ ์ˆ˜ํ–‰๋œ๋‹ค. ์ด ๊ณผ์ •์€ Fog Edition ์—์„œ์˜ ์ฟผ๋ฆฌ ์ˆ˜ํ–‰๊ณผ ๋™์ผํ•˜๋‹ค.

Lookup / Volatile Table

Broker๋ฅผ ํ†ตํ•ด Volatile Table์— ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ฒฝ์šฐ, Broker์—์„œ๋งŒ ์ฟผ๋ฆฌ๊ฐ€ ์ˆ˜ํ–‰๋œ๋‹ค. ์ด ๊ณผ์ •์€ Fog Edition ์—์„œ์˜ ์ฟผ๋ฆฌ ์ˆ˜ํ–‰๊ณผ ๋™์ผํ•˜๋‹ค.

Warehouse๋ฅผ ํ†ตํ•ด์„œ๋Š” JOIN์„ ํ•  ์ˆ˜ ์—†๋Š”๋ฐ, Volatile Table์ด ์ƒ์„ฑ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋‘ ํ…Œ์ด๋ธ” ๊ฐ„ JOIN

Broker๋ฅผ ํ†ตํ•ด์„œ Log Table๊ณผ Volatile Table ๊ฐ„ JOIN์„ ํ•˜๋Š” ๊ฒฝ์šฐ, ์ ‘์†ํ•œ Broker์™€ ๋‚˜๋จธ์ง€ Warehouse ๊ฐ€ ๋™์‹œ์— ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. Broker๋Š” Volatile Table ๊ฒฐ๊ณผ๋ฅผ Warehouse์—๊ฒŒ ๋‚˜๋ˆ ์ฃผ๋ฉฐ, Warehouse๋Š” Broker๊ฐ€ ์ „๋‹ฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ JOIN ํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ƒ์„ฑ๋œ ๋ถ€๋ถ„ ๊ฒฐ๊ณผ๋ฅผ Broker๊ฐ€ ์ˆ˜์ง‘, ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Warehouse๋ฅผ ํ†ตํ•ด์„œ๋Š” JOIN์„ ํ•  ์ˆ˜ ์—†๋Š”๋ฐ, Volatile Table์ด ์ƒ์„ฑ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


์ด์ค‘ํ™”


์ด์ค‘ํ™”๋ž€, ๊ธฐ์กด์— ์„ค์น˜๋œ Node ์˜ ์‹คํŒจ๋ฅผ ๋Œ€๋น„ํ•ด ๋˜‘๊ฐ™์€ Node ๋ฅผ ๋ณต์ œํ•˜๋Š” ๊ณผ์ • ๋˜๋Š” ๊ทธ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

Coordinator Replication

Cluster Edition ์—์„œ Coordinator๋Š” ์ตœ๋Œ€ 2๊ฐœ๊นŒ์ง€ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋‘ Coordinator๋Š” ์ง€์†์ ์œผ๋กœ Cluster Node ์ •๋ณด๋ฅผ ๊ณ„์† ์œ ์ง€ํ•œ๋‹ค.
์–ด๋Š ํ•œ ์ชฝ์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜๋”๋ผ๋„, ๋‚˜๋จธ์ง€ Coordinator๊ฐ€ Cluster Node ๊ด€๋ฆฌ๋ฅผ ๊ณ„์† ํ•  ์ˆ˜ ์žˆ๋‹ค.

Primary Coordinator๊ฐ€ ์žฌ์‹œ์ž‘๋˜๋ฉด ๊ธฐ์กด์˜ secondary coordinator๊ฐ€ primary๋กœ ๊ฒฉ์ƒ๋˜๊ณ , ์žฌ์‹œ์ž‘ํ•˜๋Š” coordinator๋Š” secondary๊ฐ€ ๋œ๋‹ค.


Lookup Replication

๊ธฐ๋ณธ์ ์œผ๋กœ Lookup Master๊ฐ€ Lookup Table ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜์ง€๋งŒ, Lookup Slave๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.


Broker Replication

Broker๋Š” Replication ๋Œ€์ƒ์ด ์•„๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ Broker A์— ๋“ค์–ด์žˆ๋Š” Volatile Table์˜ ๋ฐ์ดํ„ฐ ๋ ˆ์ฝ”๋“œ๋Š” Broker B์— ๋˜‘๊ฐ™์ด ์œ ์ง€๋˜์ง€ ์•Š๋Š”๋‹ค. (not synchronized)
๋‹ค๋งŒ, Cluster ์ „์ฒด์˜ ํ…Œ์ด๋ธ”/์ธ๋ฑ์Šค ์Šคํ‚ค๋งˆ๋Š” ๋ชจ๋‘ ๋™์ผํ•˜๋ฏ€๋กœ, Broker A์— Volatile Table VOL_TBL1 ์ด ์กด์žฌํ•˜๋ฉด Broker B์—๋„ Volatile Table VOL_TBL1 ์ด ์กด์žฌํ•œ๋‹ค.

Warehouse Replication

Group ์— ์ƒˆ๋กœ์šด Warehouse ๊ฐ€ ์ถ”๊ฐ€๋˜๋Š” ๊ฒฝ์šฐ, ๋‹ค์Œ ๊ณผ์ •์„ ํ†ตํ•ด์„œ Warehouse ๊ฐ€ ์ด์ค‘ํ™”๋œ๋‹ค.

  1. Coordinator ๊ฐ€, ์ƒˆ๋กœ์šด Warehouse ์—๊ฒŒ DDL ์ด์ค‘ํ™”๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.
  2. Group ์ด Readonly ์ƒํƒœ๋กœ ์ „ํ™˜๋œ๋‹ค.
  3. Group ์ค‘ 1๊ฐœ์˜ Warehouse ๊ฐ€, ์ƒˆ๋กœ์šด Warehouse ์—๊ฒŒ ๋ฐ์ดํ„ฐ ์ด์ค‘ํ™”๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.
  4. ๋ฐ์ดํ„ฐ ์ด์ค‘ํ™”๊ฐ€ ๋๋‚˜๋ฉด Group ์€ Normal ์ƒํƒœ๋กœ ์ „ํ™˜๋œ๋‹ค.

๋ฐ์ดํ„ฐ ์ž…๋ ฅ์˜ ๊ฒฝ์šฐ, Broker ๊ฐ€ ๊ฐ™์€ Group ์—๋Š” ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•จ์œผ๋กœ์จ ์ด์ค‘ํ™”๋ฅผ ๋ณด์žฅํ•œ๋‹ค.



๋ณต๊ตฌ ๋ฐฉ๋ฒ•


Node๊ฐ€ ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์–ด๋„, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์šด์˜ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.

์ข…๋ฅ˜Fail-over ๋ฐฉ๋ฒ•
Coordinator

Primary Coordinator๊ฐ€ ๋น„์ •์ƒ ์ข…๋ฃŒ๋˜์–ด๋„, Secondary Coordinator ๊ฐ€ Primary Coordinator๊ฐ€ ๋˜๋ฉด์„œ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ๋ฅผ ๊ณ„์† ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ตœ์•…์˜ ์ƒํ™ฉ์œผ๋กœ Coordinator๊ฐ€ ๋ชจ๋‘ ์ข…๋ฃŒ๋˜์–ด๋„, ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์—†์„ ๋ฟ ์ „์ฒด ์„œ๋น„์Šค (๋ฐ์ดํ„ฐ ์ž…๋ ฅ/์กฐํšŒ) ๋Š” ๊ณ„์† ํ•  ์ˆ˜ ์žˆ๋‹ค.
(๋ฌผ๋ก , ์ด ๋•Œ Broker๋‚˜ Warehouse๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์—†๋‹ค.)

Deployerํ•ด๋‹น Host ๋กœ Node Operation (ADD, REMOVE..) ์„ ํ•  ์ˆ˜ ์—†๊ณ , ํ•ด๋‹น Host ์˜ ํ†ต๊ณ„ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์—†๋‹ค.
Lookup

Lookup Master์—์„ธ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Lookup Monitor๊ฐ€ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜์—ฌ Lookup Slave ์ค‘ ํ•˜๋‚˜๋ฅผ Lookup Master๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ๊ณ„์†์ ์ธ ์„œ๋น„์Šค ์ด์šฉ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.

๊ธฐ์กด์— Lookup Slave๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋ฐ์ดํ„ฐ ๋ณต์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ์ƒํƒœ์ด๊ธฐ์— ์•ˆ์ •์ ์ธ HA๋ฅผ ์œ„ํ•ด Lookup Slave๋Š” ํ•˜๋‚˜ ์ด์ƒ ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

Broker

Broker๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„, ๋‹ค๋ฅธ Broker๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ๊ณ„์† ์„œ๋น„์Šค๋ฅผ ์ง€์†ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋‹จ, ์ข…๋ฃŒ๋œ Broker์™€ ์—ฐ๊ฒฐ๋œ ํด๋ผ์ด์–ธํŠธ์˜ ์ ‘์†์€ ๋Š์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ Broker๋กœ ์žฌ์ ‘์†ํ•ด์•ผ ํ•œ๋‹ค.


Warehouse

Group ์— ๋‹ค๋ฅธ Warehouse(s) ๊ฐ€ ์กด์žฌํ•˜๋ฉด, ํ•ด๋‹น Warehouse(s) ๊ฐ€ SELECT ์™€ APPEND ๋ฅผ ๊ทธ๋Œ€๋กœ ์ฐธ์—ฌํ•œ๋‹ค.

์ง€์›๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ


Query Statement

TABLESPACE

ํ˜„์žฌ Cluster Edition ์—์„œ๋Š” ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค ๊ตฌ๋ถ„์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

BACKUP / MOUNT

ํ˜„์žฌ Cluster Edition ์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ๋ถ„์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

LOAD IN FILE

CSV ํŒŒ์ผ์„ ์ฝ์–ด ๋ถ„์‚ฐํ•˜๋Š” ๊ธฐ๋Šฅ์€ ํ˜„์žฌ ๊ตฌํ˜„๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค.

ALTER TABLE FORGERY CHECK

๊ณ ๊ฐ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๋ฌธ์ธ๋ฐ, Result File์„ ํ•œ ๊ณณ์— ๋ชจ์„ ์ˆ˜ ์—†๋‹ค.


Clause / Function

UNION ALL

์‹คํ–‰ ๋‹จ์œ„๊ฐ€ ๋ณต์žกํ•˜๊ฒŒ ์ƒ์„ฑ๋˜๋ฏ€๋กœ, ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š๋Š”๋‹ค.

GROUP_CONCAT() function

๊ฐ Warehouse ์—์„œ ์ˆ˜์ง‘ํ•œ ๋ถ€๋ถ„ ๊ทธ๋ฃน์— ๋Œ€ํ•œ CONCAT ๋‚ด์šฉ ์ „์ฒด๋ฅผ, ๋‹จ์ˆœ ๋ˆ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค.

(GROUP CONCAT์—์„œ ORDER BY๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ)

TS_CHANGE_COUNT() function

๊ฐ Warehouse ์—์„œ ์ˆ˜์ง‘ํ•œ ๋ถ€๋ถ„ ๊ทธ๋ฃน์— ๋Œ€ํ•œ TS_CHANGE_COUNT ๊ฒฐ๊ณผ๋ฅผ ๋‹จ์ˆœ ๋ˆ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ TS_CHANGE_COUNT() ๋Š” ์ „์ฒด ๊ฒฐ๊ณผ๊ฐ€ ์ •๋ ฌ๋˜์–ด ์žˆ์–ด์•ผ ์˜๋ฏธ๊ฐ€ ์žˆ๋Š”๋ฐ, Warehouse์— ๋ถ„์‚ฐ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋ฉด ์˜๋ฏธ๊ฐ€ ์—†๋‹ค.


์ง€์› ํ•˜๋“œ์›จ์–ด ๋ฐ ์šด์˜์ฒด์ œ


CPUIntel Core i Series (Nehalem~) ์ด์ƒ ๊ถŒ์žฅ
Memory์„ค์น˜๋  Node 1๊ฐœ ๋‹น 2GB ์ด์ƒ ๊ถŒ์žฅ
์šด์˜์ฒด์ œLinux (Any distribution)

Related content