메모리 데이터베이스
태그 :
- 개념
- 데이터베이스 Startup과 동시에 데이터베이스를 Memory에 상주시켜 관리 및 운영하는 DB
1. 메인메모리 데이터베이스 MMDB의 이해
가. MMDB(Main Memory DB)의 정의
데이터베이스 Startup과 동시에 데이터베이스를 Memory에 상주시켜 관리 및 운영하는 DB
나. MMDB(Main Memory DB)의 특징
모든 연산을 주기억장치에서 수행, Disk I/O 발생하지 않음(Logging 제외)
기존 디스크 기반의 입출력 횟수를 줄이게 되어 빠른 처리 속도를 얻을 수 있음.
데이터 조작을 위해 디스크에 접근할 필요성이 없기 때문에 속도가 향상됨.
주기억장치의 휘발성으로 인한 오류회복이 주요 해결 과제임
데이터 갱신은 메모리에서 직접하고 갱신 내용을 Disk의 Log file에 기록
주기적으로 변경된 메모리 내의 데이터페이지를 Disk의 Data file에 반영(Checkpoint)
다. MMDB의 출현배경
구분 |
내용 |
기술적 측면 |
-64비트 OS 환경의 일반화(Memory Size제약 사항 소멸) -Memory 가격의 지속적 하락 -Mobile 기기의 발전 |
비즈니스 측면 |
-신속한 의사결정 및 안정적인 서비스가 기업의 경쟁력(RTE) |
1. MMDB 구조 및 기존 Disk 기반 DB와의 비교
가. MMDB의 구조
- 데이터 갱신은 메모리에서 하고 벡업, 로그 생성은 디스크를 이용함.
나. Disk 기반 DB와의 비교
구분 |
디스크 기반 DB |
MMDB |
데이터 저장장치 |
디스크 |
주기억장치(메인메모리) |
운영목표 |
데이터의 안정적 운영 |
트랜잭션의 빠른 수행 |
동시성제어 |
데이터 접근 트랜잭션 중심 |
인덱스에 대한 동시성 제어 |
처리속도 |
1배(DB연산+데이터전송연산) |
10~500배빠름(DB 연산시간) |
Backup 매체 |
Disk |
Disk |
Indexing 알고리즘 |
B-Tree, B+Tree |
Hashing, T-Tree |
Size제한 |
Disk Size |
Physical Memory Size |
회복기법 |
Undo/Redo 로그로 관리 |
하드웨어적인 회복기법 |
시스템 설계방향 |
Disk 접근횟수 최소화 데이터 Clustering 향상 |
CPU 처리시간 최소화 메모리 공간 사용 최소화 |
3. MMDB의 요소기술
가. 데이터 접근 및 저장 기법
1) 데이터 접근 및 저장기법(인덱싱)비교
구분 |
디스크 기반 DB |
MMDB |
목적 |
디스크 I/O 최소화 |
메모리 공간 효율적 사용 |
전략 |
클러스터링 |
접근비용이 저렴한 인덱스 |
자료구조 |
B-Tree |
T-Tree |
데이터 포인팅 |
인덱스 노드는 키 값과 데이터에 대한 포인터 필요 |
인덱스 노드는 포인터만 필요 |
2) T-tree의 구조와 탐색연산
- 루트로부터 탐색
- 찾는 값이 노드의 최소값보다 작으면 왼쪽 크면 오른쪽 탐색
- 그 외 노드에 포함된 테이터들과 비교 탐색
나. 회복기법
1) 회복기법 비교
구분 |
디스크 기반 DB |
MMDB |
회복 대상 원본 |
비휘발성 저장장치(디스크 등)에 상주 |
휘발성 주기억장치에 상주 |
장애시 영향 |
주기억 장치 버퍼내의 데이터만 손상되며, 전체 DB에 영향을 주지 않음 |
DB 전체가 손실되어 회복기법이 매우 중요함. |
2) 회복기법 요구사항
회복관련 작업으로 인해 MMDB의 성능저하 가능성이 있으므로 안정적이면서도 오버헤드가 적은 회복기법이 필요함.
3) 회복을 위한 구성요소
구분 |
분류 |
설명 |
로깅 및 트랜잭션 commit |
로깅 규칙 (Logging Rules) |
1) WAL(Write Ahead Logging) - 로그정보는 데이터베이스에 변경사항이 반영되기 전에 비휘발성 메모리에 먼저 기록되어야 함 2) Commit Rule - 트랜잭션이 commit되면 그 효과는 failure와 관계없이 데이터베이스에 영구히 반영되어야 함. 3) LAW(Logging After Writing) - 변경된 데이터의 사후 이미지(after image)가 변경사항이 데이터베이스에 반영된 후에 로그에 기록 되어져야 함 - commit된 트랜잭션의 로그 정보는 회복 시 사용하기 위해 로그 버퍼에서 비휘발성의 안전한 저장 장치로 이동되어야 함. |
Commit 방식 |
1) Immediate Commit - Commit시 로그 버퍼 내의 해당 트랜잭션의 모든 로그 레코드를 안전 로그 저장장치로 이동 -디스크 I/O가 빈번히 발생 -> 성능저하 2) Group Commit -로그 버퍼가 가득 차는 경우에만 안전 로그 저장 장치로 이동 -I/O횟수 감소, 각 트랜잭션의 commit시점이 늦어짐 -> 동시성저하 3) Precommit - commit시 로그 버퍼에만 기록하고 주기억장치의 데이터를 unlock - 트랜잭션 처리량 증대 - strict 2PL을 사용하고 로그버퍼에 로그가 순차적으로 기록되므로 commit 순서가 보장됨으로써 일관성 유지 |
|
안전로그 저장 장치의 종류 |
1) 디스크 - 장점 : 별도의 하드웨어 비용 불필요 - 단점 : 디스크 입출력 처리에 의한 오버헤드로 성능저하 2) 안전 기억 장치 (stable momory) -장점 : 입출력 처리에 따른 오버헤드는 발생하지 않음 -단점 : 별도의 하드웨어 비용문제 발생 |
|
체크포인트 |
동기방식 |
-트랜잭션이나 action 수행과 동기를 맞추는 방식으로 체크포인팅을 할 때 트랜잭션의 수행을 정지시키므로 성능 저하 -논리적 로그 기록 방식을 적용함으로써 로그를 간단히 기록 가능 -transaction consistency 체크포인팅(TCC), action consistency 체크포인팅(ACC) |
|
비동기 방식 |
-트랜잭션의 수행에 영향을 주지 않고 체크포인팅을 수행함으로써 성능에 영향을 미치지 않음 -물리적 로그 기록 방식만 지원되므로 로그의 양이 많아짐 -fuzzy 체크 포인팅 |
Restart |
Database Prefetching |
-전체DB를 주기억장치에 적재 후 트랜잭션 처리 시작 -장장 : 구현이 쉽고 트랜잭션 처리시 page fault가 적게 발생함으로써 성능 향상 -단점 : 시스템 재 가동후 DB적재 시간이 많이 걸림으로써 트랜잭션 전체 처리량 감소 |
|
Page Prefetching |
-트랜잭션을 분석하여 먼저 필요로 하는 페이지를 적재 -장점 : 붕괴 후 시스템 설정 시간이 Database Prefetching 보타 단축됨으로써 트랜잭션 처리량 많아짐 -단점:필요한 페이지를 파악하고 우선순위에 따라 트랜잭션 처리를 하면서 적재해야 하므로 구현이 어려움. |
4. MMDB의 한계 및 Hybrid MMDB
가. MMDB의 한계
1) 정보 처리 요구량 증가로 인한 대용량 처리의 한계 (메모리 크기의 한계)
나. Hybrid MMDB 등장
1) 고성능 정보처리와 대용량 정보처리가 동시에 가능함
2) MMDBMS, DRDBMS, Hybrid MMDBMS등 다양한 구성이 가능함. “끝”
※참고자료
1) 업종별 응용 분야
업종 |
내용 |
특징 |
통신 |
MMDBMS를 적용(attach)한 특화솔루션 (HLR, DLR, CSCF, AS, MSS, TCS, WPBX, NPDB, GLR) : Embedded S/W Module |
SK Telecom, KTF, KT, LG Telecom의 거대 통신사들에 집중되어 매출이 발생 |
Billing(과금 계산/부과) 시스템 |
- 통신모듈에 MMDBMS를 내장시켜 특화 - 솔루션으로 판매하는 경우가 대부분 |
|
인증시스템 |
통신업종에 특화된 MMDB 판매업체와 DDBMS-like MMDBMS를 개발하고 판매하는 판매업체로 나뉘어짐 |
|
LBS(위치기반 서비스) |
|
|
게이트웨이 개발 |
|
|
HLR(Home Location Register), 고객관리 시스템 |
|
|
통신서비스 장비개발용 : Embedded S/W module |
|
|
SCP/SMT 개발용 |
|
|
증권 |
시세 데이터 취합 / 조회 서비스 |
현대, 대신, 한화, 삼성 등 대부분의 증권사에서 직간접 사용 |
주문 체결/조회 |
실시간 빠른 성능 가능 |
|
주식 및 선물매매 체결시스템 |
중요한 대부분의 업무에 적용 |
|
종목 분서 및 차트서비스용 |
대외 접속 시스템에 활용 |
|
인터넷 |
채팅서비스 |
브라질 로또 시스템, 플래너스 등 MMDBMS의사용-효용성이 큼 |
다량접속, 빠른 속도 가능 |
||
온라인 로또 시스템 |
기존 솔루션보다 빠른 인증이 가능 |
|
인맥 전문 사이트 |
사용자관리, 과금 시스템등 서비스를 체계화하여 여러 게임 개발에 재사용 |
|
국방 |
전투게임 시뮬레이션 시스템 |
|
방송 |
오디오 파일시스템 |
디지털 콘텐츠의 빠른 처리 |
디지털 라디오방송 통합 DB제작 |
||
은행 |
계정계 및 정보계 업무 – Batch 업무 ( 센터컷 등) |
신한, 제주은행의 배치작업, 대외 접속시스템에 사용 |
대외접속 시스템 |
복잡한 비즈니스 로직 처리 응용이 아닌 덜 급하고 대용량의 데이터 처리에 활용 |
|
제조 |
공장자동화용 DB |
삼성전자, 현대자동차 등 활용 |
지문 홍체 인식시스템 |
공장자동화 SW와 호환 사용 |
|
인사급여시스템 |
복잡한 SQL의 빠른 처리 |
|
공공 |
위치물체검색시스템 |
실시간으로 멀티미디어 데이터를 수집하고 통계를 내며 검색이 가능 |
지능형 교통통제시스템 |
||
분담금 환급시스템 |
||
보험 |
재보험, 통계 등 Batch 업무 |
제일화제,SK 생명보험 등에서 사용 |
준비금 검증시스템, ALM 업무 |
복잡한 비즈니스 로직 처리 응용이 아닌 덜 급하고 대용량의 데이터처리에 활용 |
2) MMDBMS 응용분야별 활용방안
구분 |
업무특징 / MMDBMS 활용 가능한 부분 |
은행 |
o 업무 및 시스템 특징 - 대부분의 계정계, 정보계, 대외계 업무가 IBM CICS COBOL 환경에서 실행이 되며, 복잡한 비즈니스 로직이 파일에 숨어있거나, 공통 프로 그램 모듈에 숨어 있어서 RDB로의 모델링이 매우 힘듦 - 24시간 고가용성이 유지되어야 하는 시스템 특성이 존재함 |
o MMDBMS의 도입으로서 큰 효과가 기대되는 부분 - 인터넷 뱅킹 전분야, 통계 어플리케이션 부분(복잡한 집계, 처리), 배치업무(실시간을 요구하지 않음), 콜 센터 전 분야, 대외접속시스템 의 전분야, 대량의 조회검색 어플리케이션 부분. |
|
o 시장의 진입 - 오라클 등의 DDBMS가 차지하고 있는 업무분야에서 구조적인 성능 문제의 보완(DDBMS와의 병행 사용) - 성능이 요구되는 복잡한 SQL이 사용되는 어플리케이션의 일부대체. - DDBMS를 대체하여 사용하는 것이 나은 부분은 대체하여 사용. - 대외계 업무 중 성능향상이 필요한 부분 어플리케이션의 대체. |
|
o 시장의 개척 전략 - DDBMS보다 비용, 성능 측면에서 절대적인 우위에 있고, DDBMS를 보완하는 기능(동기적 데이터 연동 특징 등)이 있으며, 대체시에도 어플리케이션 변환작업이 매우 간단하다는 점을 실증. - 전환프로그램(전문 등), SMS, PDA 등 모바일 솔루션의 강점을 부각하여 이 분야에 대한 우얼한 지위의 활용. - DDBMS의 안정성(이중화 등)에 떨어지지 않는 기능의 보완. |
|
보험 |
o 업무 및 시스템 특징 - 보험업무, 계리업무, 경영관리, 설계사관리, 채널별 점포관리, 융자 업무들이 대부분 IBM Mainframe 환경에서 실행이 되었으나, 개방형 환경(Unix와 RDBMS)을 많은 업체가 채택함. - 보험업무의 복잡하고 변경이 잦은 업무의 특성상 어플리케이션의 비즈니스 로직 처리부분이 매우 중요하고, 데이터베이스에 표현되는 다양한 상품에 관한 계산 등의 규칙들에 대한 처리가 성능보다 우선되는 사항임. |
o MMDBMS의 도입으로서 큰 효과가 기대되는 부분 - 고객중심의 개방형 환경으로 변환되면서 각 업무별로 서버가 구성 되는데, 주요 업무중 통계나 배치업무, 다양한 검색과 대외접속시스템 들에서 DDBMS를 보완 또는 대체하여 사용할 부분이 많음. - 대외기관과의 인터페이스 시스템에의 적용시 커다란 효과 입증됨. |
|
o 시장의 개척 전략 - 현재 구조적으로 성능의 우수성만을 강조하는 전략에서 탈피하여, 시스템 도입이전의 컨설팅, 개발방법론, DDBMS와의 병행사용시 어플리케이션 개발방법론, DDBMS를 대체시 변환방법론 및 구체적인 절차 등의 수립이 필요함. - 기존 DDBMS의 변환 및 병행 사용시 고려사항, 정합성 검증방법 고려 - 더욱 빠른 검색방법의 개발 |
|
카드 |
o 업무 및 시스템 특징 - 회원, 고객, 승인, 청구.회수, 재무정산(계리), 여신, 채권, 공통, 가맹점, 거래정지 등의 업무들이 은행의 계정계, 정보계와 연계되어 있고, 카드사(BC카드사)나 금융결제원, VAN사 등의 외부기관 등과 연계된 대외계 및 카드시스템(처리계) 등으로 이루어져 있다. - 최근의 고객중심 시스템 사상으로 인하여 CRM을 위한 데이터 웨어하우스(분석계)가 구축되어 있음. |
o MMDBMS의 도입으로서 큰 효과가 기대되는 부분 - 처리계의 배치업무, 성능향상이 필요한 온라인 검색업무, 통계업무 등의 업무에 MMDBMS가 도입됨으로써 큰 효과가 예상되나, 데이터베이스가 IBM DB2가 아닌 오라클 등의 데이터베이스여야 함. - 분석계의 업무중 대량의 자료검색 및 메타 프로세싱 등의 업무에 DDBMS와 병행하여 MMDBMS가 사용될 필요가 있음. - 대외계의 모든 시스템에는 인증, 데이터 변환 등을 위한 MMDBMS의 도입 필요성 존재함. - 콜센터/TM, 인터넷 활용, 고객평가 등의 시스템에 MMDBMS의 활용 가능. |
|
o 시장의 개척 전략 - 은행업무와 마찬가지의 고도의 트랜잭션 특성(ACID)이 요구되며, 어플리케이션 특성상 Commit/Rollback과 Logging, Locking 등의 비 기능적인 특성에 대한 DDBMS에 버금가는 기능의 보완. - 가장 복잡한 비즈니스 처리와 관련된 시스템 전체에 트랜잭션이 걸쳐있는 승인 등의 대표적인 업무에 대한 MMDBMS의 활용상의 강점을 부각시키고 우려를 불식시킬 것. (DDBMS와 유사한 SQL, PL/SQL, Stored Procedure의 존재, DDBMS보다 용이한 프로그래밍 작업, 안전한 백업 및 복구 정책 등) |