1회: 메인 메모리 DBMS의 등장 배경과
개요
2회: 메인 메모리 DBMS 기술
3회: 메인 메모리 DBMS의 안정성과 이중화
4회: 메인 메모리 DBMS 현황 및
전망
메모리 DBMS가 범용적으로 활용된 것은 불과 3~4년 밖에 되지
않는다. 20년 이상 범용적으로 사용되어 왔던 디스크 DBMS에 비하면
메인 메모리 DBMS의 역사는 매우 짧다. 뿐만 아니라 적용 업무 또한
제한적이다. 그러나 메모리 DBMS는 크게 주목 받고 있다. 네트워크 장비
및 속도의 발전과 온라인 환경의 대중화로 인해 빠른 트랜잭션 처리에
대한 사용자의 요구가 증대되고 있기 때문이다. 메인 메모리 DBMS는
빠르다는 강점을 갖고 있어 대안이 될 수 있다.
메모리 DBMS의 시장은 64비트 컴퓨팅 시대의 도래 및 메모리 가격의
지속적인 하락 등이 촉매제로 작용해 빠른 성장세를 구가하고 있다.
업체 관계자들은 아직 초기 시장에 불과하지만, 향후 몇 년 동안은
급성장할 시장으로 내다 보고 있다.
이번 호에서는 사용 형태별 메모리 DBMS의 발전 방향, 시장 전망,
그리고 활용 사례를 살펴 봄으로써 메인 메모리 DBMS에 대한 독자들의
이해를 돕고자 한다.
메인 메모리 DBMS의 발전 방향
대형 플랫폼에서부터 소형 플랫폼에 이르기까지 또 DB 크기에 따라
메모리 DBMS의 적용 형태는 달라질 수 있다. 그만큼 메모리 DBMS는
다양한 형태의 제품으로 출시되고 있으며 DBMS 자체의 크기와 지원하는
기능의 정도 또한 다양하다. 따라서 메모리 DBMS는 적용 형태에 따라
다음과 같이 크게 세가지 유형으로 발전할 것으로 예상한다. 각각의
유형에 관하여 살펴보면 다음과 같다.
범용 메인 메모리 DBMS
기존 디스크 기반 DBMS를 활용하기에는 요구하는 성능 수준이
높으나, DB 사이즈가 그리 크지 않은 분야에 메인 메모리 DBMS를
선별적으로 활용하는 분야가 있다. 주로 통신 분야가 이에 해당되는데
고객 인증, 소프트스위치, HLR 등이 대표적이다. 이 분야에 사용하기
위한 메인 메모리 DBMS는 기존 디스크 DBMS가 포함하는 기본 기능뿐만
아니라 부가 기능을 지원하여 디스크 DBMS와 호환성을 유지하고 그것에
익숙한 사용자가 어려움 없이 메모리 DBMS를 활용할 수 있도록 해야
한다. 이러한 제품군을 범용 메인 메모리 DBMS라 한다.
범용 메인 메모리 DBMS란 기존의 메인 메모리 DBMS가 특정 분야 또는
일부 기능만을 가지고 있는데 반해 디스크 기반 DBMS가 지원하는
대부분의 기능을 지원하고 있어서 큰 어려움이 없이 다양한 응용 분야에
적용할 수 있는 DBMS를 의미한다. 이를테면 범용 메인 메모리 DBMS는
빠른 성능은 물론, 응용 프로그램 개발의 편의성, DB의 가용성, 그리고
다양한 DB 유틸리티도 함께 제공해야 한다.
범용 메인 메모리 DBMS로서 알티베이스 메인 메모리 DBMS는 응용
프로그램의 개발 편의성을 위해 ODBC, JDBC, ESQL 등 여러 가지
프로그래밍 인터페이스를, DB의 가용성을 위해서는 이중화(replication)
기능을, 유틸리티로는 DB 관리기, 모니터, 대화형 질의도구, DB
import/export 등 다양한 툴들을 지원하고 있다.
내장형 메인 메모리 DBMS
한편, 라우터와 같이 특수 목적의 소형 하드웨어 시스템에 적용될 수
있는 소규모의 메인 메모리 DBMS는 데이터를 고속으로 처리하고,
소형화하는데 초점을 맞추고 있기 때문에 범용 메인 메모리 DBMS에 비해
상당히 제한적인 기능들만을 제공한다. 이러한 제품군을
내장형(embedded) 메인 메모리 DBMS라고 한다. 보다 정확하게
정의한다면 플랫폼 내장형 메인 메모리 DBMS라 할 수 있다.
소형 플랫폼에 적용하는 것을 주목적으로 하는 내장형 메인 메모리
DBMS는 그 크기가 매우 작아야 하기 때문에 DBMS의 많은 기능을 지원할
수가 없다. 또 대부분의 소형 플랫폼에서 이루어지는 DB 연산은 매우
간단하다는 것을 전제하기 때문에 사용자는 DBMS의 많은 기능을
요구하는 대신에 가볍고(small-size) 성능이 빠른 DBMS를 원하게
된다.
보통 내장형 메인 메모리 DBMS는 간단한 SQL 만을 지원하거나 아니면
아예 SQL을 지원하지 않는 경우도 있다. 그리고 동시 사용자 수도
제한하거나 장애에 대비한 로깅 조차 지원하지 않는 제품도 있다.
그러나 요즘은 사용자 편의성을 강조하는 추세이기 때문에 DBMS가
기본적으로 가져야 할 틀은 지원하되 그 기능들을 대폭 제한하는 형태로
발전하고 있는 추세다.
혼합형 DBMS
메인 메모리 DBMS는 전체 DB를 메인 메모리에 상주하여 관리한다는
것은 이미 다 알고 있다. 그러나 성능 때문에 메인 메모리 DBMS를
도입하려 해도 DB의 크기 때문에 고민하는 사용자들이 아직도 많이
있다. 메모리 가격이 많이 하락했다 하더라도, 512GB 이상을 장착하는
하드웨어 플랫폼이 현재 없는 실정이고 또 기존에 보유하고 있는
시스템을 이용하려는 경우 메모리 증설에 따른 비용을 부담스러워 하는
사용자들도 있다. 따라서 대용량 DB를 메인 메모리 DBMS로 운영한다는
것은 사실상 어렵다. 하지만 대용량 DB를 다루는 경우 속도에 대한
욕구를 갖는 사용자들도 많이 증가하고 있는 것도 사실이다.
기존 디스크 DBMS에는 성능을 향상시키고자 특정 테이블을 메모리
영역에 상주시켜 처리하는 기능을 제공하는 제품도 있다. 그러나 그것은
어디까지나 디스크 기반 DB에서 출발하여 왔기 때문에 성능의 한계는
여전히 풀어야 할 숙제로 남아 있는 상태이다. 그 동안 사용자들은
대용량 DB의 성능을 향상시키기 위하여 성능이 요구되는 데이터(hot
data)는 메인 메모리 DBMS로 관리하고 크게 성능을 요구하지 않는
데이터(cold data)는 디스크 DBMS로 관리하는 구조로 해결해 오고 있다.
그러나 이 운용 구조는 성능에 대한 사용자의 갈증을 어느 정도 해소
시켜 주었지만, 응용프로그램의 개발이 매우 복잡하고 두 개의 DBMS
구입에 따른 비용 증가와 운영 관리의 어려움이 사용자들에게는 큰
부담이었다.
이러한 문제를 해소하고자, 최근 메인 메모리 DBMS에서도 대용량 DB를
지원하고자 하는 연구가 활발히 진행되고 있다. 이러한 연구의 핵심은
핫 데이터는 메모리에 상주시켜 관리하고 콜드 데이터는 디스크에
상주시켜 관리함으로써 DB 전체의 성능을 향상시키는 것이다. 핫
데이터와 콜드 데이터를 별개의 테이블로 정의하여 각각을 메모리 또는
디스크에 저장할 수도 있지만, 하나의 논리적 테이블을 물리적으로는
메모리와 디스크에 나누어 저장할 수도 있다. 예를 들어 통신
요금테이블의 경우, 최근 요금 정보는 자주 접근되고 이후의 데이터는
접근빈도가 낮다고 가정할 때, 최근 2개월 치 요금 요금데이터는
메모리에 상주시키고 그 이전의 요금데이터는 디스크에 상주시켜
관리하는 것이다. 물론 사용자는 필요한 데이터가 메모리에 있는지
아니면 디스크에 있는지 전혀 알 필요가 없다.
이러한 새로운 개념의 DBMS는 현재 개발 중에 있으며, 조만간 출현할
것으로 예상한다. 물론 이 DBMS가 기존의 디스크 기반 DBMS의 완전
대체를 의미하는 것이 아니라, 위와 같이 메인 메모리 DBMS를 활용하고
싶지만 데이터의 크기 때문에 적용하기가 곤란했던 부분들에 아주
유용하게 사용될 것으로 보인다. 당분간 혼합형 DBMS의 주된 모습은
메인 메모리 DBMS이고 단지 그 동안 메인 메모리 DBMS가 대용량
테이블을 지원하지 못했던 단점을 어느 정도 보완하는 정도의 모습으로
선보일 것으로 예상한다.
<표 1> 메인 메모리 DBMS의 유형별 비교
새로운 DBMS 아키텍처의 요구
혼합형 DBMS는 아직 시장에 선보이지 않은 상태여서 다소 생소할
것으로 사료된다. 지금부터는 혼합형 DBMS의 개념에 대해 좀 더
상세하게 살펴보도록 하겠다.
데이터의 빠른 처리를 요구하는 사용자들은 메인 메모리 DBMS를
도입하여 성능 문제를 해결하여 왔다. 그러나 앞서 언급 했듯이 메인
메모리 용량을 훨씬 초과하는 데이터를 처리하기 위해서는 디스크 기반
DBMS와 연동하는 구조를 채택함으로써 데이터 처리의 고성능과 대용량
문제를 해결했다. 이러한 해결책은 시스템의 관리와 유지 측면에서는
매우 복잡하고 많은 어려움이 있다.
또한 최근의 데이터들은 실시간 처리 성격이 매우 강하고, 대용량이라는
특징을 지니고 있다. 예를 들어 주식 거래 정보나 통신 과금
데이터(CDR) 등과 같은 데이터들은 끊임 없이 많은 양의 데이터가
유입되고 이를 빠르게 처리해야 하는 스트림(stream) 데이터의 속성을
지닌다. 또한 향후 도래할 유비쿼터스 컴퓨팅 환경에서는 여러
센서로부터 발생한 데이터를 실시간으로 저장 관리할 수 있어야 한다.
기존의 일반적인 비즈니스 데이터뿐만 아니라 이러한 스트림 데이터를
효과적으로 관리할 수 있는 DBMS의 등장이 강력히 요구되고 있고, 향후
크게 각광받을 것으로 전망된다.
필자는 메인 메모리 DBMS와 디스크 기반 DBMS를 혼합한 DBMS 모델이 그
대안 가운데하나일 것으로 확신한다. 혼합형 DBMS는 메인 메모리 뿐만
아니라 디스크를 동시에 데이터의 저장 매체로 활용함으로써 핫
데이터와 콜드 데이터를 구분하여 저장 관리하는 형태의 새로운 DBMS를
말한다.
<그림 1>은 필자가 구상하고 있는 혼합형 DBMS의 개략적인
구조이다. 사용자는 테이블 정의 시 해당 테이블을 메모리에 상주시킬
것인지 아니면 디스크에 상주시킬 것인지를 결정한다. 그리고 질의
시에는 해당 테이블이 어느 매체에 저장되어 있는지 전혀 신경쓸
필요없이 종전과 동일하게 질의하면 된다. 이 과정을 SQL 질의 문을
통해서 살펴보면 다음과 같다.
ㆍ메모리 공간에 테이블 생성
Create table memory_table (id int) tablespace memory;
ㆍ디스크 공간에 테이블 생성
Create tablespace mytablespace datafile …;
Create table disk_table (id int) tablespace mytablespace;
ㆍ메모리와 디스크 구분 없이 질의
INSERT INTO disk_table SELECT * FROM memory_table;
SELECT * FROM memory_table , disk_table
WHERE memory_table.id = disk_table.id;
SELECT * FROM disk_table
WHERE disk_table.id IN ( SELECT memory_table.id FROM
memory_table);
<그림 1> 혼합형 DBMS 구조
메인 메모리 DBMS 시장 전망
메인 메모리 DBMS는 디스크 기반 DBMS에 비해 역사도 매우 짧고 시장
규모도 그다지 크지 않다. 그러나 메인 메모리 DBMS를 도입하려는
움직임이 활발해 지고 있고, 매년 높은 성장세를 구가해 온 만큼,
시장을 전망함으로써 향후 성장을 가늠해 보는 것도 매우 의미 있는
일이다.
메인 메모리 DBMS의 세계 및 국내 시장은 2003년을 기준으로 각각
1800억원과 100억원 정도의 규모를 형성한 것으로 조사됐다. 아직까지
시장 규모는 매우 작지만 시장 성장률은 높은 편이어서 세계시장이 연간
20%, 국내시장이 약 40% 이상의 성장률을 보이고 있다. 특히 국내
시장의 성장률이 높은 이유는 메인 메모리 DBMS가 주로 이동통신과
인터넷 관련 분야에 적용되기 때문인 것으로 분석된다.
<표 2>에서 세계시장은 내장형 DBMS와 범용 DBMS 시장을 합친
것이고 국내 시장은 범용 DBMS 시장만을 표시한 것이다. 이유는 세계
시장은 내장형 DBMS가 주를 이루고 있고 국내 시장의 대부분은 범용
DBMS가 주를 이루고 있기 때문이다. 이러한 현상은 해외의 경우는 통신
장비 또는 기타 실시간 장비에 메모리 DBMS를 적용하는 반면 국내는
통신 부가 서비스 또는 인터넷 서비스에 주로 사용하기 때문인 것으로
파악된다. 앞으로 2년 정도는 이러한 현상이 계속되다가 이후에는 점차
세계시장과 국내 시장 모두 내장형 DBMS와 범용 DBMS의 시장이 동일한
분포를 형성할 것으로 예측된다.
<표 2> 국내외 메모리 DBMS 시장
<그림 2>는 2003년 국내 DBMS의 시장 점유율을 표현한 것이다.
메인 메모리 DBMS인 알티베이스의 점유율이 6%로 나타나 있다. 이것을
보면 아직 메인 메모리 DBMS를 많이 이용하지 않는다는 것을 알 수
있다. 어쩌면 디스크 DBMS와 함께 시장 점유율을 비교한다는 것이
어불성설일지도 모른다. 왜냐하면 적용 분야 및 목적이 각기 다를 수
있기 때문이다. 그러나 메인 메모리 DBMS를 DBMS의 한 분야로
사용자들이 인정하고 있다는 증거이며, 점차 그것의 점유율은 증가할
것이라 단언해도 무리는 아닐 것이다. 참고로 세계 DBMS의 시장에서
아직 메모리 DBMS가 차지하는 비중은 약 2% 정도로 예상한다.
<그림 2> 국내 DBMS 점유율
<그림 3> 분야별 메인 메모리 DBMS 활용 분포
통신 분야에서 메모리 DB의 필요성
범용 메인 메모리 DBMS의 적용과 시장은 우리나라가 선도한다고 해다
과언이 아닐 만큼 세계에서 가장 활발하게 사용하고 있다. 앞에서도
언급했듯이 현재까지 메인 메모리 DBMS는 통신분야에 가장 많이
적용되었고 앞으로도 더 많이 활용될 것으로 예상된다. 따라서 국내의
통신 분야에서의 메인 메모리 DBMS 시장이 향후 어떻게 전개될 것인가를
분석해 보는 것도 매우 의미가 있다.
초고속 인터넷의 활성화와 함께 이동통신 가입자가 폭증한 2000년 이후,
유선 및 무선 통신 분야는 동시에 처리해야 할 트랜잭션의 폭증 현상이
나타났다. 일례로, 이동 통신에서 가입자 위치 관리 시스템(HLR: home
location register)의 경우, 2000년 이전에는 하나의HLR 시스템이
관리해야 하는 가입자의 수가 최대 30만 명이면 충분하였으나 이후
가입자의 증가로 이제는 최대 50~100만 명의 가입자 위치를 관리할 수
있는 시스템으로 확장되었다.
한편 유선 통신 분야에서는 기존의 하드웨어 의존적 전자교환시스템에서
이제는 소프트스위치 기술로 전개되고 있다. 이 시스템은 기존의 PSTN,
VoIP, 멀티미디어 등 여러 매체를 통한 음성과 영상을 동시에 정합하여
처리하는 소프트웨어 기반 복합교환기로서 고속의 내부 트랜잭션 처리를
요구하고 있다.
이와 같은 유무선 통신 환경에 필요한 일부 시스템 장비는 데이터
처리를 기본으로 하고 있으며, 최근 몇 년 전까지는 주로 디스크 기반
RDBMS를 활용하였다. 그러나 무선 이동 통신 가입자의 증가와
차세대네트워크(NGN: next generation network) 기반의 유선통신
시스템들은 대량의 트랜잭션을 고속으로 처리해야 하기 때문에, 기존의
RDBMS로는 이 처리 속도를 감당할 수 없을 정도가 되었다. 따라서
최근에는 이러한 시스템들이 효과적으로 데이터를 처리하기 위하여
고성능 트랜잭션 처리를 지원하는 메모리 기반 DBMS를 채택하고 있는
추세다.
통신 분야에서의 메모리 DB의 활용
지금까지 통신분야에서의 메모리 DBMS는 주로 이동 통신 분야에서
활용되고 있다. 이것은 이동 통신은 기지국 장비 시스템을 제외하곤
대부분의 통신시스템이 대단위 지역별 또는 중앙에서 일괄 처리 및
제어되고 있기 때문에, 이들 시스템들이 처리해야 할 트랜잭션들이 모두
한곳으로 모이기 때문에 고성능 처리가 불가피하기 때문이다. 반면에
유선 통신은 각 지역별 또는 전화국 단위로 통화처리가 이루어지기
때문에 상대적으로 고성능 트랜잭션 처리의 필요성이 떨어진다. 대신
유선 통신에 있어서 메모리 DB의 주된 활용 분야는 인터넷과 연관된
서비스 시스템에 활용이 제한되고 있다. 이를테면, 메신저, 채팅,
그리고 고객 인증 같은 응용이 있다.
<표 3> 유무선 통신에서 메인 메모리 DB의 적용 분야 분류
<표 4> 국내 통신 분야 메인 메모리 DB 시장 추이
<그림 4> 국내 통신 분야의 메모리 DBMS 적용 분포
메인 메모리 DBMS 활용 사례
인터넷 가입자 인증
PC통신 및 대형 인터넷 포털 사이트의 경우 수백만에서 수천만의
가입자를 확보하고 있기 때문에, 동시 접속자 수의 증가로 인한 서비스
속도의 한계를 극복하는 것이야말로 경쟁력 확보의 필수 불가결한
요소라 할 수 있다. 또한 콘텐츠 사용에 따른 요금계산 및 CRM을 위한
기초 데이터 수집을 위한 방문자의 행위 기록을 위해서는 빠른 사용자
인증과 실시간 정보 수집이 필요하다.
SK Group 내에서 개별적으로 운영되던 유무선 포털 사이트 즉, n.Top,
Netsgo, OKcashbag, Lycos 등의 인터넷 서비스 사이트에 대한 인증을
SSO(Single Sign On)의 통합 인증 시스템으로 개편하였다. 이 시스템은
대량 가입자의 동시 접속에 따른 인증 성능의 저하를 방지하기 위하여
고성능 메모리 DBMS를 도입하여 효율적인 개발을 이루었으며, 현재
성공적으로 운영 중에 있다. NATE 포털 통합인증 시스템은 Altibase의
이중화 기능을 활용하여 무정지 서비스, 부하 분산, 성능 향상을
도모하였다. 또한 유료 콘텐츠의 사용이 활성화 되면서, 이에 대한 빌링
기능도 제공되고 있는데, 각 사이트에서 발생한 요금을 메모리 DB로
통합 처리하도록 하였다.
국내의 대표적인 인터넷 포털 서비스 업체 중 하나인 한국통신하이텔은
기존에는 써드-파티(third-party)에서 개발된 메모리 기반 데이터 처리
시스템을 도입하여 운영하였다. 그러나 사용자 수의 급증과 서비스
향상을 위한 유지 보수의 어려움 등의 난제가 산재되어 있어 결국 범용
메인 메모리 데이터베이스 시스템(MMDBMS)을 도입하였다. 그 결과,
메모리 DBMS를 적용한 하이텔의 통합 고객 인증 시스템은 초당 5,000 명
이상의 동시 사용자를 인증할 수 있게 됐으며, 유료 가입자의 빌링
정보와 사용자 행위를 분석하기 위한 기초 자료들을 실시간으로 수집할
수 있게 됐다. 특히 시스템의 안정성을 도모하기 위해, 메모리 DBMS의
이중화 기능을 이용하여 두 대의 서버로 상호 보완 시스템을
구축함으로써 정전 등 서버의 물리적인 장애에도 대처할 수 있는 높은
수준의 안정성과 가용성을 제공하는 솔루션을 구축하였다. 이렇게
함으로써 한국통신하이텔은 방문자가 폭주하더라도 실시간으로
인증절차를 완료할 수 있고 무정지 시스템으로 운영할 수 있게
되었다.
<그림 5> 하이텔의 사용자 인증을 위한 초기 화면
실시간 주식 시세 분석
HTS를 이용하는 주식거래자는 효율적인 주식 거래를 위해 종목별
시세분석, 차트(chart) 등 다양한 분석 정보를 참조하게 되며, 이 때
가장 최신의 정보를 제공받기를 원한다. 이러한 정보의 원시 데이터는
증권전산으로부터 넘겨 받아 각 증권사 서버에서 가공하여 제공되는데,
원시 데이터를 실시간으로 가공하여 데이터베이스화하고 사용자 요청 시
최근 데이터로부터 분석한 정보를 제공할 필요가 있다.
증권전산에서 전송되는 시세 데이터가 비동기 19.2KB에서 UDP 256KB로
변경됨에 따라 초당 처리해야 할 데이터의 양이 3-4배 가량 증가하게
되었고 매도 매수 호가도 5단계에서 10단계로 늘어나게 됐다. 이 때문에
증권사들은 실시간으로 주식 시세를 수집하는 속도를 주요 이슈로
인식하게 되었고, 수집된 데이터를 실시간으로 가공하고
데이터베이스화하여 분석하는 시스템 구축의 필요성을 가지게
되었다.
<그림 6> 굿모닝신한증권에서 제공하는 주식시황 분석
서비스<출처: www.goodi.com>
최근 굿모닝신한증권은 HTS 서버에 메인 메모리 DBMS를 탑재하여 위와
같은 문제를 해결하고 현재 ‘굿아이2004’로 전지점 및 일반인에게
서비스하고 있다. 종합시세, 분석정보, 차트, 매수매도 주문 등
대부분의 주식관련 서비스를 메모리 DB로 처리하여 제공하고 있다.특히
대부분의 데이터베이스 관련 프로그램을 메인 메모리 DBMS가 제공하는
저장 프로시저(stored procedure)를 사용하여 작성함으로써, 메인
메모리 DBMS를 범용적으로 활용할 수 있음을 확인시켰다.
‘굿아이2004’는 초당 수 천 건의 시세 데이터의 입력과 변경을 처리할
수 있으며, 5천 명 이상의 동시 사용자에게 조회 서비스를 제공할 수
있는 시스템이다.
차세대 빌링 시스템
이동통신 가입자가 폭증하고 또 통신사업자 간의 경쟁이 심화되면서,
각 업체들은 다양한 부가 서비스를 통해 자신만의 경쟁력을 키워가고
있다. 신속한 빌링 체계도 그 중 하나라고 볼 수 있다. SK텔레콤은 메인
프레임 기반의 기존 빌링 시스템이 서비스 플랫폼의 변화, 사용량의
증가 및 네트워크 진화에 따른 특성을 적기에 반영하지 못하고 있다고
판단, 유닉스 계열의 플랫폼으로 빌링 체계를 대폭 개선하는 작업을
수행하고 있다. 다양한 요금 체계, 비즈니스 모델의 효과적인 지원,
다양화되고 세분화되는 고객 욕구를 적기에 충족시킬 수 있는 실시간
과금 처리 기능을 갖는 빌링 인프라를 구축하는 것이다.
이 빌링시스템은 요금계산(rating)을 위해 메모리 DBMS를 활용하고
있다. 초당 3500 CDR(Call Data Record)을 분석하여 즉시 메모리 DB에
저장하고 실시간으로 고객별 요금을 계산하고 있다. 이 시스템을 통해
고객이 언제든 자신의 통화 및 부가 서비스 요금을 조회할 수 있다. 이
시스템은 메인 메모리 DB와 디스크 DB를 연계함으로써 메모리 DB
사이즈에 대한 한계를 극복하는 시스템으로 구성하였으며, 메인 메모리
DB를 이중화 함으로써 부하 분산과 시스템 장애를 대비하고 있다.
<그림 7> SK텔레콤의 차세대 빌링 시스템 구성도
데이터를 관리해야 하는 통신 시스템 장비의 대부분은 DB 규모가
그리 크지 않고 데이터 관리보다는 통신 기능을 수행하는 것이 주
목적이다. 따라서 시스템 규모가 그리 크지 않은 반면 높은 성능을
요구하는 특징이 있다. 이들 시스템들이 데이터를 관리하기 위해서
기존의 디스크 DBMS를 활용하기에는 시스템 규모가 맞지 않는 경우가
많다. 이를 해결하기 위하여 기존에는 데이터 관리 부분을 직접
구현하여 활용하는 사례가 많았다. 그러나 이러한 방식은 개발의
어려움이 많을 뿐만 아니라 유지보수, 기능추가 등이 매우 어려워서
통신기능 개발에 정성을 쏟기 보다는 오히려 데이터 관리에 많은 시간을
소비하기도 했다. 일부 디스크 기반 DBMS를 사용하기도 하지만 성능과
제품의 크기 때문에 적용하기 어려운 상황도 있었다.
통신 시스템 장비에 메모리 DB를 활용한 사례는 많이 있지만 여기에서는
HLR(Home Location Register)를 살펴보기로 한다. 삼성전자는
2.5세대(CDMA2000 1x)와 3세대(IMT2000) 이동통신 서버 플랫폼에 메모리
DB를 탑재하였다. 특히 이동통신 서비스를 위한 가입자 관리 시스템인
HLR과 데이터 서비스 시스템인 DLR에 메인 메모리 DB를
사용하였다.
HLR 서버는 이동통신 가입자의 호 처리를 위한 기본 데이터와 부가
서비스 데이터, 가입자 인증 관련 정보, 운용 데이터 등을
관리함으로써, 실시간으로 가입자의 위치를 추적하여 기지국간 호
연결을 제공하는 시스템이다. 이러한 일들을 수행하기 위해서는
데이터베이스를 실시간으로 처리해야 하기 때문에 HLR 시스템은
고성능의 메인 메모리 DBMS를 필요로 한다. 그 동안 삼성전자는
독자적으로 데이터 처리 소프트웨어를 개발하여 사용하는 등 고성능
트랜잭션 처리의 필요성을 절감하였다. 삼성전자가 독자적으로 개발하여
사용해 왔던 데이터 처리 소프트웨어는 새로운 부가 서비스의 추가,
운영 중 고객 데이터베이스 변경의 어려움 때문에 유지 보수 비용이
매우 높았다. 이런 이유로 HLR에 범용 메모리 데이터베이스 시스템을
도입함으로써, 고속의 트랜잭션 처리와 이중화를 통해 신뢰성을 확보한
HLR 시스템을 개발하였다.
이 HLR 시스템은 100만 가입자 정보 및 부가 서비스, 운영 데이터 정보
등을 포함한 데이터베이스를 쉽게 구축하고 관리할 수 있다. 또 이
시스템은 TCAP 메시지를 기준으로 2000TPS 이상의 성능을 발휘한다.
이동통신 서비스의 특성상 어떠한 장애에도 서비스를 지속해야 하는
특성 때문에 이 시스템은 메모리 DBMS의 이중화 기능을 적용하여
안정성과 고가용성을 제공하는 무정지 시스템으로 개발되었다.
<휴대 인터넷>
3.5세대 이동통신 기술로 대두되고 있는 휴대 인터넷 기술은 현재
ETRI와 삼성전자에서 개발 중에 있다. ETRI에서 개발하고 있는
액세스포인트와 라우터의 데이터 관리 소프트웨어로 메인 메모리 DBMS를
사용하고 있다. 기존의 2세대 이동 통신에 적용된 이들 시스템에서의
데이터 관리는 필요한 기능만을 직접 개발하여 사용했었다. 그러나
아무리 간단한 데이터 관리 소프트웨어라도 DBMS의 기본 기능을 어느
정도 포함하고 있기 때문에 개발의 많은 시간을 이 데이터 관리
소프트웨어에 할애했어야만 했다.
이제는 데이터 관리 부분은 전문화된 메모리 DBMS를 활용함으로써
연구진은 휴대인터넷 시스템 기술 개발에 더욱 전념할 수 있을 뿐만
아니라, 효율성과 유지보수성, 그리고 기능추가의 편리성을 추구하는
휴대인터넷 시스템 개발에 노력하고 있다.
지금까지 4회에 걸쳐 메인 메모리 DBMS의 등장 배경과 개요, 적용 기술,
안정성과 이중화, 그리고 현황 및 전망에 관하여 살펴보았다. 아직도
많은 사람들이 메인 메모리 DBMS에 관한 내용을 정확히 알지 못하고 또
어느 정도의 지식을 가진 사람들도 이것을 도입하려는데 있어서
주저하고 있는 것으로 파악된다. 여러 가지 이유가 있겠지만, 우선 메인
메모리 DBMS에 대한 신뢰성을 아직 믿지 못하기 때문인 것 같다. 그러나
지금 까지 살펴본 바와 같이 성능과 미션이 매우 중요한 분야에서 이미
사용되고 있기 때문에 그러한 우려는 갖지 않아도 될 것 같다. 이제는
구축하고자 하는 시스템에 과연 메인 메모리 DB가 효율적인가를 잘
판단하여 그것의 도입 여부를 결정하면 될 것이다.
|