연재/하이브리드 MM DBMS - 1회

2006-09-05     알티베이스

최근 한 전자 업체가 HDD 대신 플래시 메모리를 저장장치로 이용해 데이터 액세스 속도는 높이고 부팅속도를 절반으로 줄인 노트북을 전시회에 출품, 화려한 스포트라이트를 받았다. 이는 노트북 업계에서도 HDD를 보조하는 저장 장치로서가 아닌, 느린 HDD를 대체하는 주 저장매체로서 메모리의 가능성을 타진하고 있음을 시사한다. 이외에도 다양한 분야에서 메모리는 단순히 프로그램을 실행하기 위한 임시 저장공간이 아니라 데이터를 저장하기 위한 용도로 활용하기 위한 노력들이 확대되고 있는데, 이는 메모리가 빠른 액세스 속도와 저전력, 소형화 등과 같이 저장 매체로서 매력적인 장점을 제공하기 때문이다.  



데이터를 저장하고, 관리해야 하는 DBMS 분야도 예외는 아니다. 이미 오래 전부터 메모리를 저장 매체로 이용하기 위한 연구와 노력은 진행되어 왔고, 수 년 전부터는 메인 메모리 DBMS(Main Memory DBMS, 이하 MM DBMS)라는 제품으로 등장하여 사용되어 오고 있다. 



비싼 메모리 가격으로 인한 높은 구축 비용으로 소규모의 리얼타임 시스템에만 제한적으로 사용되어 왔던 초기와 달리, 지금은 대용량 DB로서 사용되는 등 사용 범위가 크게 확대되었다. 불과 몇 년 만에 MMDBMS가 범용 DBMS로 자리매김 할 수 있었던 것은 메모리 가격의 하락과 운영체제에서의 본격적인 64비트 시대의 도래로 이용 가능한 메모리 용량이 무한대로 확장된 점에 기인한다고 볼 수 있겠다. 게다가 최근에는 실시간 기업(RTE), 유비쿼터스 컴퓨팅, 와이브로, 텔레매틱스, RFID 등 새롭게 등장하는 용어나 서비스들마다 실시간 데이터 처리에 기반하고 있어 향후 MM DBMS에 대한 관심과 수요는 더욱 폭발적으로 증가할 것으로 전망하고 있다.


MM DBMS의 등장배경과 개요

MM DBMS(Main Memory DataBase Management System)는 데이터베이스를 메모리에 상주시켜 운영하는 DBMS로, 업체별로 메모리 DBMS, MMDB(Main Memory Database), In-Memory Database System, in-Main Memory Database, 메모리 디비 등으로 다양하게 불리워지고 있지만, 데이터베이스를 메모리에 상주시켜 이용한다는 동일한 개념을 갖고 있다. 이번 연재에서는 독자들의 혼동을 피하기 위해 MM DBMS로 통일하기로 한다.


앞에서도 잠시 언급했듯이 MM DBMS란, 데이터베이스의 일부 또는 전부를 메인 메모리에서 관리하는 DBMS로, 디스크에 대한 접근 없이 직접 메모리 접근을 통해 데이터를 관리하므로 고성능 데이터베이스 처리를 가능하게 하는 데이터베이스 관리 기술이다.


MM DBMS가 소개되고 본격적으로 활용된 지는 5년여 남짓밖에 되지 않지만, 실제 이에 대한 연구는 90년대 초반부터 국내 학계와 산업계를 중심으로 다양한 연구가 진행된 분야이다. 국내 유수의 대학과 한국전자통신연구원(ETRI)가 공동으로 ‘실시간 처리 DBMS(MR.RT)’ 라는 과제로 수 년간 연구를 했던 것이 대표적인 사례이다. 당시 개발된 MM DBMS는 자료저장 시스템 수준에 불과했지만, 그 결과 많은 DBMS 개발 인력들이 양성될 수 있었다. 이들은 90년대 후반에 나타난 인터넷의 대중화와 이동통신의 폭발적인 증가세로 실시간 데이터 처리에 대한 요구가 크게 증대되기 시작하자, 주요 MM DBMS 업체에 참여하여 상용 MM DBMS를 탄생시키는 산파 역할을 담당하게 됐다. 


이와 같이 장기적이고도 지속적인 연구 개발에 힘입어 MM DBMS에 대한 연구나 개발 활용 측면에서 우리나라는 이미 세계적인 수준에 이르렀으며, 토종 업체들이 관련 시장을 주도하고 있다. 백신, 그룹웨어 등과 같은 응용 소프트웨어 분야에서 토종 업체들이 로컬 시장을 중심으로 주도권을 잡는 경우는 종종 있기는 하지만, 기간 SW이자 기술 진입 장벽이 높은 DBMS 시장에서 토종 업체가 주도권을 잡고 있다는 것은 매우 이례적인 일로 받아들여 지고 있다. 이는 진입 장벽과 외산 의존도가 높은 분야라도 시장과 고객의 요구를 정확히 예측하여 품질과 서비스를 겸비한다면, 토종 제품이라도 충분히 시장 경쟁력이 있음을 시사한다.


또한 MM DBMS의 적용분야를 살펴보면, 우리의 일상생활과 매우 밀접하게 연관되어 있음을 알 수 있다. 소규모 실시간 데이터 처리를 위한 시스템에만 한정적으로 적용되던 초기와는 달리, 포털 사이트의 인증에서부터 증권사의 HTS(Home Trading System), 휴대폰 이용을 위한 HLR (Home Location Register)에 이르기까지 다양한 분야의 실생활 속에서 폭넓게 활용되고 있다. MM DBMS가 시장에 본격적으로 등장한 지 불과 몇 년 밖에 지나지 않았다는 사실을 감안할 때 단시간 내에 고객의 신뢰를 얻어 범용 DBMS로 성장할 수 있었던 것은 다음과 같은 여건들이 성숙되었기 때문이다.


실시간 데이터 처리 요구 증가

기업의 정보시스템 환경이 웹 기반으로 전환되고 인터넷이 대중화되면서 고성능/대규모 트랜잭션 처리 요구가 전 산업 분야에서 크게 증대되고 있다. 특히 통신, 금융분야는 고객 및 정보관리에 있어서 실시간 데이터 관리가 필수불가결한 요소이다. 온라인 서비스 환경이 일반화 되고 동시 사용자수는 과거에 비해서 비약적으로 증가하고 고객의 기대 수준 역시 높아졌다.


불과 몇 년 전만 하더라도 기업들은 사용자의 시스템 액세스 패턴을 예측할 수 있었기 때문에 사전에 시스템 증설 계획이나 피크 타임에 대한 방안을 마련하여 최상의 속도를 제공하기에 무리가 없었지만, 이제는 얼마나 많은 동시 사용자가 접속할 것인지, 그리고 특정 시간대에 집중될 것인지 아무 것도 예견할 수 없는 상황에 봉착하고 있다. 그럼에도 불구하고, 기업들은 언제 어디서나 수시로 접속하여 시스템을 사용할 지 모르는 사용자들을 위한 서비스 품질 보장 방안을 마련해야 하는 이중고를 겪고 있다. 결국 기업들은 이러한 고객들의 요구를 충족시키기 위해 피크타임에도 사용자들에게 최상의 처리속도를 제공할 수 있도록 실시간 데이터 처리 방안에 눈을 돌리게 된 것이다. 


기존 DBMS의 처리 한계

고객의 변화하는 요구에 부합하기 위해서는 데이터는 일반적으로 지속적으로 증가하고 다양한 형태로 가공되고 시스템은 복잡 대형화 된다. Oracle, DB2, MS-SQL 과 같은 일반 디스크 상주형 DBMS(Disk Resident DBMS, 이하 DR DBMS)는 대용량 데이터 처리에 적합하나 대용량 데이터의 초고속 처리에는 그 한계를 드러내곤 한다. DR DBMS는 버퍼 캐쉬를 통해서 느린 디스크 성능을 보완하는 구조를 갖고 있다. 그러나 사용자의 선택에 따라서 버퍼 캐쉬에 상주시킬 데이터를 선택하는 것이 아니라 데이터의 접근 빈도에 따라서 DR DBMS가 판단하기 때문에 데이터의 운용상태에 따라서 실시간 처리의 중요도가 낮은 데이터가 버퍼 캐쉬를 점유하여 정작 실시간 처리가 필요한 데이터의 버퍼 미스(Buffer Miss Ratio)를 유발하여 기대한 효과를 얻지 못할 수가 있다. 이러한 문제 해결을 위해서 어떤 기업에서는 실시간 처리용 소프트웨어를 자체 개발하여 사용하기도 하였다. 일례로 일찍부터 증권업계에서는 고속 처리가 필요한 소규모의 데이터를 메모리에 저장하고 관리하기 위한 다양한 솔루션을 개발해 이용해 왔었다. 그러나 여전히 산업표준, 높은 가용성, 실시간 처리능력, 확장 가능한 구조를 동시에 만족시키는 DB 시스템이 절실히 요구되어 왔고 최근 증권 분야의 MM DBMS 활용 사례에서 살펴볼 수 있듯이 MM DBMS가 그 확실한 대안이 되고 있다.


메모리 가격 하락 및 64비트 운영체제 등장

반도체 칩의 집적도가 향상되고 대량생산을 통해 메모리 가격이 지속적으로 하락하면서 대용량 메모리를 장착한 시스템의 구성이 쉬워졌다. 32bit 운영체제는 메모리 어드레싱(addressing) 한계로 인해서 사용 가능한 최대 메모리크기가 4GB인 제약사항이 있어서 MM DBMS가 대용량 DB로 업무영역을 확장하는 데 큰 제약사항이 되어왔다. 그러나 메모리 가격 하락과 64비트 운영체제가 보편화 되면서 최근에는 512GB까지 메모리를 장착할 수 있는 시스템이 등장했다. 이러한 환경의 변화를 통해서 MM DBMS가 지원하는 최대 DB 사이즈가 커질 수 있는 유리한 여건이 조성되면서 그 적용분야도 점차 다양화 되고 있다.


고객의 마인드 변화

과거 첨단 정보 시스템이라면 앞다퉈 도입하던 기업들은 이제 기업의 비즈니스 기회 창출에 반드시 필요한 것인지 꼼꼼히 따져본 후 도입을 검토하고, TCO(Total Cost of Ownership) 및 ROI(Return of Invest) 측면에서 정량화된 효과를 측정 가능한 시스템만을 선별하여 투자를 집행하려는 움직임이 두드러지게 나타나고 있다. 



과거에는 외산이냐 국산이냐 또는 어떤 브랜드이냐가 중요한 선택의 기준이었지만, 이제는 어떠한 제품이 더 뛰어난 성능과 신뢰성을 제공하는지 더 나아가 제대로 된 기술 지원을 받을 수 있는지, 경쟁력 향상에 기여할 수 있는 지 등을 판단 기준으로 삼고 있다. 그 결과, 굳이 외산을 고집하지도 않을 뿐 더러 보다 비용 효과적인 제품들의 선택에 눈을 돌리고 있다.


결국 기업들은 갈수록 방대해 지는 데이터의 효용성을 높이고, 트랜잭션 처리 속도의 향상이라는 해결 방안을 제시하고, 실제 상용 DBMS 대비 70~80% 비용에 10배 이상의 성능을 발휘하는 MMDBMS가 주목 받는 것은 지극히 당연한 일이라고 할 수 있겠다.

































<그림1> MM DBMS의 활용추이




MM DBMS의 개념

MM DBMS와 DR DBMS의 기능적 구조적 차이점을 살펴보기 전에 디스크 저장 장치와 메모리 간의 다른 특성에 대해서 먼저 간단하게 살펴 보기로 한다.


* 메모리에 대한 접근 속도는 디스크 저장장치와 비교되지 않을 만큼 빠르다.

* 메모리는 휘발성 저장장치이다. 그러나 비용을 추가하면 메모리를 비휘발성 저장장치로 구성하는 것도 가능하다.

* 디스크 데이터의 배치상태는 메모리의 데이터 배치상태보다 접근 속도에 결정적인 영향을 줄 수 있다. 때문에 디스크에 대한 순차적(sequential) 접근 속도가 랜덤 액세스(Random Access) 보다 훨씬 빠르다. 메모리 데이터에 대한 순차적 접근은 중요하지 않다.

* 보통 프로세서는 메모리를 직접 접근하지만 디스크는 그렇지 않다. 이 때문에 메모리상의 데이터는 디스크상의 데이터에 비해서 소프트웨어 에러의 영향을 받기가 쉽다.




위와 같은 차이점은 동시성제어, 데이터 저장구조, 인덱스 구조 등에 이르기까지 메모리의 빠른 접근속도를 효율적으로 이용하도록 MM DBMS의 설계와 구현시에 고려되어졌다.


MM DBMS가 ‘데이터의 고속 처리’라는 목표를 위해서 개발된 제품이긴 하지만 동시에 기본적인 DBMS의 요건인 데이터의 안정성 보장을 신뢰할 수 있어야 한다. 그러나 메모리는 그 특성상 전원공급이 차단되면 저장내용이 소실되는 휘발성의 저장장치이므로 정전이나 OS의 다운 등과 같이 예기치 않은 상황에서는 데이터의 안정성을 보장할 수 없다. 이에 대한 해결책으로 MM DBMS는 DR DBMS와 마찬가지로 메모리상의 데이터 변경사항을 디스크에도 동시에 기록한다. 일반적으로 메모리가 디스크에 비해서 수천 배 빠르지만 MM DBMS가 DR DBMS에 비해서 수천 배 빠르지 않은 이유는 데이터 안정성 보장을 위해서 비 휘발성 저장장치인 디스크 장치를 이용하는 디스크 I/O를 동반하기 때문이다.


MM DBMS는 구동하면서 데이터와 인덱스를 포함한 디스크 상의 모든 DB 전체를 메모리로 로딩하는 단계를 거친 후 모든 레코드의 접근이 메모리상에서 이루어진다. 구동 이후부터는 디스크는 메모리 상의 변경 트랜잭션에 대한 백업 데이터를 유지하는 용도로 사용된다. 휘발성의 저장공간인 메모리에 저장되는 데이터를 영구적인 기록장치인 디스크에도 동시에 기록함으로써 일반인이 우려하는 것처럼 정전이나 MM DBMS의 다운 혹은 시스템 다운으로 인해서 DB 데이터가 소실되지 않는 것이다. 그러나 데이터의 안정성 보장을 위한 디스크 I/O 작업은 MM DBMS에게 데이터 처리 성능저하라는 불가피한 손실(trade-off)을 요구하기 때문에 MM DBMS에는 디스크 I/O에 의한 성능저하를 감소시키기 위한 다양한 기법이 도입되었다.


첫째, 디스크 I/O 횟수를 가능한 한 최소화하였다. MM DBMS는 DR DBMS와는 달리 버퍼 캐쉬가 별도로 존재하지 않기 때문에 페이지 교체가 없고, 체크포인트 시점에서만 메모리와 DB간의 동기화가 이루어지며 이로 인해 DR DBMS보다 로그 버퍼가 강제로 디스크에 플러쉬(flush)되는 상황을 줄일 수 있어 I/O 횟수를 줄일 수 있다.


둘째, 디스크에 로깅되는 정보의 양을 최대한 줄였다. 로깅되는 정보를 로그 레코드라고 하는데 이 로그레코드에는 변경된 데이터의 내용뿐만 아니라 장애 발생시점 이전으로 회복(Recovery)하는 데 필요한 다른 정보들을 포함하기 때문에 변경된 데이터의 양보다 사이즈가 크다. 따라서 로그 레코드를 최대한 줄여서 디스크 I/O 양을 줄이는 것이 성능 저하를 최소화하는데 매우 중요하다. MM DBMS에서는 인덱스 구성을 DBMS 구동 시에 다시 생성하는 구조를 가져감으로써 인덱스 변경에 따른 트랜잭션 로그를 남기지 않는 방식을 채택하고 있다. 이로써 생성되어야 할 많은 양의 트랜잭션 로그를 획기적으로 줄일 수 있다. 그리고 트랜잭션 중간에 발생하는 언두 레코드(Undo Record) 역시 메모리 페이지에 만들기 때문에 트랜잭션 회복 데이터의 생성을 위한 디스크 연산을 줄일 수 있다.


장애시점 이전으로의 회복(Recovery)을 위해서 MM DBMS는 주기적인 체크포인트를 통해 변경된 메모리 데이터를 디스크로 동기화 하는 방법과 마지막 체크포인트 이후에 생긴 트랜잭션 로그파일을 통한 복구 방법을 사용하며 이는 일반적으로 사용되는 DBMS들의 회복기법이며 DR DBMS에서도 유사한 방식을 사용한다.


DRBMS와 대비되는 MM DBMS의 가장 큰 특징이자 차이점은 운영 데이터의 존재 위치가 다르다는 점이다. 그러나 DR DBMS 에서도 디스크 데이터는 빠른 액세스를 위해서 메모리를 사용하는 버퍼 영역으로 캐쉬될 수 있고 MM DBMS는 메모리에 있는 데이터를 디스크에 백업할 수 있다. 따라서 DR DBMS와 MM DBMS 모두 특정 데이터가 디스크와 메모리에 동시에 존재할 수 있다. 그러나 주요한 차이점은 MM DBMS에서는 주(primary) 데이터의 상주 위치가 메모리이고 디스크에는 단순히 백업 데이터가 저장된다는 점이며 DR DBMS는 디스크상에 주 데이터가 존재한다는 점이다. 그렇다면 충분히 큰 버퍼 캐쉬를 확보한 DR DBMS는 MM DBMS와 어떤 차이점이 있는 것일까라는 의문을 가져볼 수도 있다.


DR DBMS가 모든 디스크 데이터 전체가 버퍼 캐쉬에 상주할 수 있을 정도로 충분히 크게 확보된 경우 캐쉬가 작을 경우에 비해서 좋은 성능을 내는 것은 분명하나 메모리를 충분히 효율적으로 이용하지는 못한다. 어플리케이션이 특정 튜플(tuple)에 접근하고자 할 때마다 먼저 그 디스크 어드레스(address)가 계산되고 그런 후 버퍼 매니저는 해당 데이터 블록이 메모리에 있는지 조사할 것이다. 그러나 레코드가 메모리에 상주한다면 이러한 과정이 필요 없이 그 레코드의 주소를 메모리 어드레스로 바로 참조할 수 있다. 불필요한 연산과정을 생략하고 접근 알고리즘을 단순할 수 있기 때문에 DR DBMS와 탐색속도에서 차이가 난다.



























<그림2> MM DBMS와 DR DBMS의 데이터 처리구조



MM DBMS의 구조

MM DBMS는 실시간 트랜잭션 처리를 주 목표로 개발된 제품이기는 하지만 DBMS의 목적인 데이터 관리와 DB 응용 프로그램 개발을 지원해야 하므로, DR DBMS와 유사한 구조를 지니고 있다. 보편적으로 사용되는 관계형 데이터 모델(Relational DBMS Model) 을 지원하고 표준 SQL 구문을 대부분 지원하며 DB 응용 프로그램 개발을 위한 다양한 도구를 제공한다는 점에서 기존 DR DBMS와 큰 차이가 없다. 



MM DBMS의 내부구조는 각 벤더별로 약간의 차이가 있으므로 본 회에서는 알티베이스 제품을 대상으로 기술하도록 하겠다. 알티베이스 구조는 DB 인터페이스, 통신계층, 질의처리계층, 자료저장관리계층, 유틸리티 등으로 분류할 수 있다. 



DB응용프로그램 개발과 밀접한 관련이 있는 인터페이스는 클라이언트-서버용 인터페이스들로서 ODBC, JDBC, ESQL(Embedded SQL)를 지원하므로 DR DBMS 개발방식과 유사한 방식으로 DB 응용프로그램개발이 가능하다. 통신계층(Communication Layer)은 DB 클라이언트 프로그램들과 DB 서버간의 통신과 연결정보를 관리한다. 질의처리계층(Query Processing Layer)은 실행할 SQL구문을 파싱하고 옵티마이저가 질의를 최적화하고 실행하는 계층이다. 자료저장관리계층(Storage Management Layer)은 메모리에 상주하는 실제 데이터를 저장하고 관리하는 계층이다. 유틸리티들로는 데이터 export/import 툴(ILOADER), 대화형 질의도구(ISQL), 프리컴파일러, GUI 툴(Admin Center), 이중화 데이터 관리툴(AUDIT) 등이 있다.

























<그림 3> 알티베이스의 내부 구조



MM DBMS VS. DR DBMS

MM DBMS와 DRDBMS의 가장 근본적인 차이는 저장 장소의 차이이다. DR DBMS의 저장 장소는 기본적으로 디스크인 반면, MM DBMS의 데이터 저장 장소는 메모리이다. 그러나 데이터를 관리하는 기능에 있어서는 MM DBMS나 DR DBMS 간에는 거의 차이가 없다. 그러나 분명히 이들을 서로 구분 짓는 몇 가지 특징들이 있다. 다음은 MM DBMS와 DR DBMS를 비교 분석한 자료이다.


 





















































































<표1> MM DBMS와 DR DBMS의 비교
구분 MM DBMS(알티베이스) DR DBMS 
DBMS Process구조  멀티 쓰레드 구조  멀티 프로세스 구조/멀티 쓰레드 구조   
데이터 모델 관계형 모델 구조  관계형 모델 구조 
아키텍처 클라이언트-서버/응용내장 클라이언트-서버
이중화 네트워크를 통한 데이터 이중화 디스크 공유 & 별개 Instance 
데이터 버전관리 다중 버전 레벨 데이터 처리  다중 버전 레벨 데이터 처리 
Locking Mode 레코드 레벨 락 레코드 레벨 락
DB Recovery  체크포인트& 로그파일 이용 체크포인트& 로그파일 이용
DBMS Interface ODBC, JDBC, CLI, Embedded SQL, PHP, Perl, XA, SNMP, GIS, LDAP, Stored Procedure 등 ODBC, JDBC, CLI, Embedded SQL, PHP, Perl, XA, SNMP, GIS, LDAP, Stored Procedure, 4GL, XML 등 이외에도 다수의 API를 제공함 
데이터 Access SQL92 표준 SQL표준 뿐만 아니라 확장된 SQL
인덱스  변형된B Tree, T-tree  B* Tree   
저장 데이터 용량 시스템에서 제공하는 메모리공간  시스템에서 제공하는 디스크 용량
DB 위치  메모리와 디스크 (체크포인트를 통해 동기화됨)  디스크   
트랜잭션로그 디스크 디스크  
온라인 백업 지원 지원
유틸리티  관리자 도구, 모니터링 도구, 대화형 질의 도구, 데이터 export/import 유틸리티, SQL 튜닝도구, 국내 DB 써드-파티업체와의 협력으로 모니터링 및 튜닝툴들이 출시예정 MM DBMS가 지원하는 유틸리티외에도 많은 다양한 도구가 있고 써드-파티 업체를 통해서도 다양한 유틸리티들이 제공됨.





<표1>에 보는 바와 같이 MM DBMS는 DR DBMS와 마찬가지로 데이터 관리와 접근이라는 DBMS의 기본적인 요구 기능을 지원해야 하므로, 많은 부분에서 유사한 특징을 갖고 있다. 특히 고가용성을 보장하기 위해서 MMDBMS가 이중화 기능을 지원하고 있는 점은 주목할 만하다. DR DBMS는 디스크 공유가 가능하기 때문에 데이터베이스 자체를 공유하는 것이 가능하므로 클러스터링 기법을 사용하는 반면, MM DBMS는 일반적으로 메인 메모리를 서버간에 공유하는 것이 불가능하므로 네트워크를 통해서 양 서버의 데이터베이스를 실시간으로 복제하여 사용하는 이중화 기법을 사용한다. 이러한 이중화 기능은 MM DBMS가 통신업무, 금융업무와 같은 고가용성을 요구하는 산업에도 하드웨어 상의 제약 사항을 극복하고 적용 가능하게 한 기술적인 성과이며, 다음 회에서 보다 자세히 살펴보기로 한다. 



<표2>는 MM DBMS와 DR DBMS의 처리성능을 수치화하여 그래프화한 것이다. 데이터 변경 연산(Insert, Update, Delete문)은 약 50배 정도의 성능 차이가 나며 데이터 조회 작업은 DR DBMS 역시 버퍼 캐쉬에 존재하는 데이터를 대상으로 하였기 때문에 약 3-4배 정도의 차이가 발생한다.

































<표 2> MM DBMS와 DR DBMS의 처리성능


MM DBMS의 발전추이

짧은 역사에도 불구하고 MM DBMS는 소형 휴대기기인 PDA부터 대형 플랫폼까지 다양한 종류의 플랫폼에서 작동하며 데이터베이스 크기와 적용형태에 따라서 아래의 세 가지 유형의 제품군으로 분류되며 발전해 오고 있다. 



* 내장형(Embedded) MM DBMS

메모리 크기가 제한적인 특수목적의 하드웨어나 업무에 이용되며 게이트웨이, 통신 서비스 장비, HLR 등에 플랫폼 내장형, 또는 S/W 내장형 등의 형태로 활용된다. 일부 제품은 고성능 경량화를 위해서 범용 메모리 DBMS에서 사용되는 클라이언트-서버 아키텍처가 아닌 DB서버가 응용 프로그램에 내장되는 형태인 응용-내장형 구조를 갖기도 한다. 범용 MM DBMS의 많은 기능을 제거한 대신 고성능 경량화를 추구하며 디스크가 없는 장비에서 구동되는 경우 회복(Recovery)을 위한 로깅 조차 하지 않은 형태로 운영되기도 한다. 



* 범용 MM DBMS

DR DBMS로는 요구 성능을 만족시킬 수 없는 경우 대체용 DB로 활용되거나 MM DBMS와 DR DBMS를 병행 사용하는 형태로 사용된다. 때문에 DR DBMS을 대체할 수 있도록 많은 기본기능을 지원하고 산업표준 규약을 준수하여 DR DBMS와의 호환성을 유지한다. 처리 업무의 특성에 따라서 DB의 크기는 수백 메가바이트에서 에서 수십 기가바이트까지 다양하다. 한가지 제품으로 소용량 DB와 대용량 DB기능 모두를 지원한다. 



* 하이브리드형(Hybrid) MM DBMS

일년 전부터 시장에 출시되기 시작한 신개념의 MM DBMS로서 기존의 MM DBMS가 갖는 시스템이 지원하는 메모리 크기를 초과할 수 없는 MM DBMS의 DB 용량의 한계를 극복한 제품이다. 데이터를 메모리뿐만 아니라 디스크에도 선택적으로 저장할 수 있도록 DR DBMS의 기능도 동시에 제공한다. 접근 빈도가 높은 데이터(Hot data)는 메모리에 빈도가 낮은 데이터(Cold data)는 디스크에 저장하는 것이 가능하므로 시스템 메모리보다 큰 DB용량을 사용할 수 있다. 고성능 대용량이라는 두 가지 기능을 동시에 요구하는 업무영역에 DB용량의 한계로 인해서 MM DBMS만으로는 대체가 불가능하여 MM DBMS와 DR DBMS를 병행 사용해야 할 때 발생할 수 있는 여러 가지 단점을 해결한 제품이다.



이상으로 MM DBMS의 등장배경과 개념 그리고 구조와 발전 과정에 걸쳐서 대략적으로 살펴보았다. 다음 시간에는 MM DBMS의 여러 특징들이 산업현장에서 어떻게 이용되고 있는지 MM DBMS의 활용사례를 중심으로 알아보기로 한다.



* 이 글은 IT 전문 월간지 <온더넷> http://www.ionthenet.co.kr에도 게재된 내용입니다.