database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ㆍALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
ALTIBASE Tutorials 20 게시물 읽기
No. 20
1회: 메인 메모리 DBMS의 등장 배경과 개요
작성자
최한열(검은호랑이)
작성일
2005-04-21 13:31
조회수
14,384

예전 기술 잡지에 실린 글입니다.

DBGuide.net 에 등록되있는거 복사했습니다.(링크시키면 좋은데...로긴을 해야되네여)

작성자는 알티베이스 기술연구소 기술이사 정광철님 입니다.

 

1회: 메인 메모리 DBMS의 등장 배경과 개요
2회: 메인 메모리 DBMS 기술
3회: 메인 메모리 DBMS의 안정성과 이중화
4회: 메인 메모리 DBMS 현황 및 전망

 

최근 국내 조사기관의 발표에 따르면, 메인 메모리 DBMS(MMDBMS)가 국내 DBMS 시장의 6%를 점유하며 3대 메이저 벤더인 오라클, IBM, MS에 이어 4위를 기록한 것으로 나타났다.
MMDBMS가 틈새 DB로서 시장으로의 우회 진입을 시도한지 4년여 만에 거둔 성과여서 더욱 값지고 소중한 결과라고 할 수 있겠다. 이는 MMDBMS가 시장의 변화와 고객의 요구 사항에 유연하게 대처하며, 통신 장비에 내장된 소규모 데이터 처리에서 수 천만 이동통신 가입자의 통화 및 요금 정산 시스템의 핵심적인 역할을 수행하는 대규모 데이터 처리에 이르기까지 소용량에서 대용량/범용 데이터베이스의 영역을 넘나들며 독자적인 영역을 착실히 구축해 왔기 때문에 가능했던 일이다.
이번 호부터 총 4회에 걸쳐 최근 주목 받기 시작한 MMDBMS의 개념에서부터 등장 배경, 시장 현황 및 전망, 주요 기술 등 MMDBMS를 상세하게 살펴본다.

MMDBMS의 등장 배경

MMDBMS는 대용량 트랜잭션을 고속으로 처리하고자 하는 요구에서 출발한 DBMS이다. 용어 자체는 다소 생소하게 들릴 수 있으나, 적용 분야와 범위를 살펴보면 우리의 일상 생활과 매우 깊은 관련을 맺고 있음을 쉽게 짐작할 수 있을 것이다.
일례로 우리가 인터넷 포털 사이트에 방문하여 가입자 인증을 받을 때, HTS(Home Trading System)을 이용해 주식을 거래할 때 또는 휴대폰 통화에 대한 요금을 실시간으로 알고자 할 때 등 현대인의 일상이 되어버린 일들을 시스템적으로 살펴보면, 거의 모든 업무에 MMDBMS가 적용되어 있는 것이다. MMDBMS는 온 국민이 직간접적으로 사용하고 있을 만큼 우리의 생활에 밀접한 IT 기술임에 틀림없다.

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

이처럼 시장에 소개된 지 불과 4년여 만에 정보 시스템의 핵심 인프라로 자리매김할 수 있었던 주요 원인 중 하나는 IT 환경의 변화에 따라 실시간 데이터 처리에 대한 요구가 크게 증가했기 때문이다.
IT 환경의 가장 큰 변화는 웹 기반 환경으로의 진입을 꼽을 수 있다. 현재 국내 인터넷 사용자 수는 약 3,000만 명으로, 전체 인구의 절반이 인터넷을 사용할 만큼 대중화되어 있음을 의미한다. 이에 따라 현재 기업들은 거의 모든 정보 시스템을 웹 기반으로 전환하였고, 향후에도 이러한 움직임은 계속될 전망이다.
e-비즈니스로 대변되는 IT 환경에서 온라인 네트웍으로 연결된 불특정 다수의 사용자들은 시간과 공간의 제약 없이 언제 어디서나 사이트에 접속해 데이터베이스에 접속하고 최상의 트랜잭션 처리 속도를 보장받기를 기대하고 있다. 이에 반해 기업들은 사용자들에게 최상의 처리 속도를 제공하고 고객 만족을 실현함으로써 기업의 궁극적인 목표인 생존을 보장받기를 기대하고 있다. 결국 웹 기반 IT 환경으로의 진입은 실시간 데이터 처리에 따른 응답 속도 제공 여부가 기업의 비즈니스 성패가 좌우될 만큼 중요한 요소로 작용하게 됐음을 의미한다.
그러나 구현은 말처럼 쉽지 않다. 불과 몇 년 전만 하더라도 사용자의 시스템 액세스 패턴은 예측 가능했기 때문에 시스템 증설 계획이나 피크 타임에 대한 방안을 마련하여 최상의 속도를 제공할 수 있었지만, 이제는 얼마나 많은 동시 사용자가 접속할 것인지, 특정 시간대에 집중할 것인지 아무것도 예견할 수 없는 불확실성의 시대이기 때문에 기업들은 언제 어디서나 수시로 사이트에 접속하여 시스템을 사용할 지 전혀 예측할 수 없는 사용자들에게 최상의 서비스 품질을 보장하는 방안을 마련해야 하는 문제에 봉착하고 있다. 결국 기업들이 웹 기반의 비즈니스에서 실효를 거두기 위해서는 24*7 동안 최상의 처리 속도를 보장하는 무정지 서비스를 제공해야 할 것이다.

기존 DBMS 한계 봉착

실시간으로 데이터를 처리하기에는 기존 DBMS의 규모가 지나치게 커져 버린 것도 MMDBMS가 주목 받고 있는 이유 중 하나이다. 기업들은 급변하는 IT 환경에 민첩하게 대응하고 고객의 요구를 충족시킨다는 목표 아래 기업들은 ERP, SCM, EAI 등 다양한 애플리케이션을 도입하기 시작했고, 이로써 기업의 IT 환경은 복잡 대형화되었고, 급격한 데이터의 증가로 DBMS를 거대하게 만드는 결과를 초래했다. 빠르고 다양하게 변화하는 컴퓨팅 환경에 적응하고 갈수록 높아져만 가는 고객의 요구를 충족시키기에는 기존의 DBMS는 몸집이 너무 커져버린 것이다.
또한 온라인 환경이 대중화되면서 기존의 DBMS들이 시간적인 예견성을 보장할 수 없다는 한계점이 드러나기 시작했다. 모든 산업 활동에서 끊임없이 생성되는 데이터들이 모두 동등한 가치를 갖지 못함에도 불구하고, 기존의 상용 디스크 기반 DBMS는 모든 데이터를 동등하게 처리했기 때문에 효율성이 떨어진다는 단점도 지적되었다.
오라클의 오라클, IBM의 DB2, MS의 SQL서버로 대표되는 디스크 기반 DBMS는 그 출발이 메모리 가격이 고가일 때 만들어졌기 때문에 환경의 변화에 대해 민감하지 못한 편이며, 시간적인 예견성을 보장할 수 없다는 한계를 가지고 있었다. CPU, 메모리, 디스크로 구분되는 컴퓨터 구조에서 사용 빈도가 높은 데이터를 디스크에서 메모리 상에 두게 되는데 원하는 데이터가 메모리 상에 존재할 경우 빠른 성능을 보장하지만 데이터가 디스크 상에 있게 될 경우 메모리에 데이터가 있을 경우 보다 낮은 성능을 보이게 된다. 이는 같은 작업에 대해 처리 시간에 대한 일정한 예견성을 가질 수 없게 되었으며, 결국 작업의 성격에 따라 디스크 기반 DBMS를 사용할 수 없는 시장이 나타나게 된 것이다.
이를 극복하기 위해 기업들은 고육지책으로 실시간 처리용 소프트웨어를 독자적으로 개발하여 사용하기도 했다. 이들 제품이 실시간 처리를 위한 시간적 예견성과 성능을 보장하는 반면에, 기능과 편의성 측면에서 많은 문제점을 내포하고 있어서 특수 목적의 산업 분야에 한정적으로 적용되고 있는 상황이었다. 게다가 응용 프로그램의 개발 및 유지 보수에 있어 매우 까다로우며, 시스템의 가용성, 확장성, 효율성 등을 보장할 수 없다는 단점을 가지고 있었다. 따라서 고성능과 데이터 효용성을 극대화하는 장점을 겸비하고, 상용 DBMS의 편의성과 기능을 강화한 DBMS의 등장을 강력하게 요구하게 된 것이다.

고객의 마인드 변화

지난 97년 IMF와 IMF때보다 더 심각한 최근의 장기 불황을 겪으면서 기업들이 더욱 현명해 지기 시작했다. 과거 첨단 정보 시스템이라면 앞다퉈 도입하던 기업들도 정보시스템이 자사의 비즈니스 기회 창출에 반드시 필요한 것인지 꼼꼼히 따져본 후 도입을 검토하고, TCO 및 ROI측면에서 정량화된 효과를 측정 가능한 시스템만을 선별하여 투자를 집행하려는 움직임이 두드러지게 나타나고 있다.
과거에는 외산이냐 국산이냐 또는 어떤 브랜드이냐가 중요한 선택의 기준이었지만, 이제는 어떠한 제품이 더 뛰어난 성능과 신뢰성을 제공하는지 더 나아가 제대로 된 기술 지원을 받을 수 있는지, 경쟁력 향상에 기여할 수 있는 지 등을 판단 기준을 삼고 있는 추세이다. 이제는 굳이 외산을 고집하지도 않을 뿐 더러, 보다 비용 효과적인 제품들의 선택에 눈을 돌리고 있다.
결국 기업들은 갈수록 방대해 지는 데이터의 효용성을 높이고, 트랜잭션 처리 속도의 향상이라는 해결 방안을 제시하고, 실제 상용 DBMS 대비 70~80% 비용에 10배 이상의 성능을 발휘하는 MMDBMS가 주목 받는 것은 지극히 당연한 일이라고 할 수 있다.

 

MMDBMS의 개념

물론 MMDBMS가 디스크 기반 DBMS의 응용 분야를 모두를 대체 가능한 것은 아니다. MMDBMS는 DBMS 자체의 볼륨이 커서 탑재하기 어려운 소규모 시스템 환경이나, 트랜잭션을 고속으로 처리해야 하는 응용 분야에 보다 적합하다. 이제 MMDBMS가 과연 무엇인지 개략적으로 살펴보자.
메모리 DBMS를 제대로 이해하기 위해서는 디스크 기반 DBMS와의 근본적인 차이에 대한 이해가 전제되어야 할 것이다. 디스크 DBMS의 저장 장소는 디스크인데 반해, 메모리 DB의 저장 장소는 반도체 메모리라는 점이 가장 큰 차이점이면서 특징이라고 할 수 있다.
디스크 기반 DBMS는 테이블과 인덱스 전체가 디스크에 존재하고 접근하려는 레코드가 속한 데이터 페이지 또는 인덱스 페이지를 필요에 따라 디스크로부터 메모리 버퍼에 읽어 들여 처리한다. 반면, 메모리 DBMS는 최초 구동 시에 디스크에 존재하는 DB 전체를 메모리에 상주시키기 때문에 모든 레코드의 접근이 메모리에서 이루어진다. 이 때 디스크는 백업 역할을 담당하거나, 데이터의 안정성을 위해 디스크에 존재하는 DB를 제3의 저장 장치로 백업할 수 있다.

<그림 1> 디스크 기반 DBMS와 메모리 DBMS의 데이터 처리 개념도
xEdit Image

디스크 기반 DBMS에서는 트랜잭션 수행 시간 중 대부분이 디스크에 있는 데이터를 직접 접근(access)하기 위하여 대기하는데 쓰인다. 하지만 전체 데이터베이스를 메인 메모리에서 직접 접근할 수 있게 되면 트랜잭션을 수행하기 위한 디스크 I/O가 없어지고, 트랜잭션 충돌이 줄어들게 된다. 충돌 해결을 위해 사용되는 블로킹(blocking)이나 취소(abort)로 발생되는 문맥교환(context switching)이 크게 줄어들면서 매우 빠른 응답시간과 높은 트랜잭션 처리 능력을 제공할 수 있게 되는 것이다.
한편, 반도체 메모리 칩의 집적도는 매년 두 배 이상으로 증가하고 있는데 반해, 가격은 지속적으로 하락하고 있다. 현재 메인 메모리를 최대 512 기가바이트까지 탑재할 수 있는 컴퓨팅 시스템이 등장했다. 따라서 점점 더 많은 양의 데이터베이스를 주기억 장치에 상주시킨 후 데이터베이스 연산이 가능하게 되었다. 이러한 환경의 변화가 메인 메모리 DBMS의 활용을 가속시키는 큰 원인이기도 하다.

메모리 DBMS의 아키텍처

메모리 DBMS의 아키텍처는 크게 클라이언트-서버 구조, 응용-내장형 구조로 구분된다. 클라이언트-서버 구조는 DBMS의 서버 모듈과 클라이언트 모듈을 분리되는데, 통신을 통해 데이터 및 처리 정보를 서로 주고 받아 처리한다.
이 구조는 클라이언트의 역할에 따라 다시 경량-클라이언트(light-weight client)와 중량-클라이언트(heavy-weight client)로 나눌 수 있다. 경량-클라이언트는 단순히 ODBC, JDBC 등과 같은 응용 프로그래밍 인터페이스 라이브러리만을 제공하며, 중량-클라이언트는 SQL 같은 질의어(query language) 처리 부분 중 파서(Parser) 또는 파서를 포함한 일부 실행 계획(execution plan)까지 포함하는 구조를 말한다. 클라이언트-서버 구조는 모듈의 독립성이 보장되어 유연성이 매우 뛰어나며, 자원을 적게 사용한다는 장점을 가지고 있는 반면에 응용-내장형 구조에 비해 성능이 떨어진다는 단점을 갖고 있다.
또 다른 아키텍처인 응용-내장형 구조는 DBMS의 서버 모듈과 API 모듈 전체가 응용 프로그램에 직접 링킹(direct linking) 되는 구조로서 응용 프로그램과 DBMS 간에 통신이 없는 구조이다. 이 구조는 통신 비용이 들지 않아 성능이 매우 뛰어나지만, 자원 사용이 커 동시 사용자 수가 제한적이라는 단점이 있다.

<그림 2> 클라이언트-서버 및 응용-내장형 구조 비교
xEdit Image

<표 1> 클라이언트-서버 VS 응용-내장형 구조의 차이점
xEdit Image

 

메모리 DBMS의 구성 요소

메모리 DBMS는 디스크 기반 DBMS와 마찬가지로 자료저장 관리기, 질의 처리기, 인터페이스, 그리고 유틸리티 등의 요소로 구성되어 있으나, 제품별로 약간의 차이는 있을 수 있다.
클라이언트-서버 구조와 응용-내장형 구조에서 각각의 요소들이 어떻게 구성되어 있는지 살펴보면 <그림 3>과 같다. QPI, MMI는 응용-내장형 인터페이스이고, ODBC, JDBC, ESQL 등은 클라이언트-서버용 인터페이스들이다.
질의 처리(query processing)는 응용 프로그램으로부터 전달 받은 SQL 문을 파싱하고 실행하는 모듈이며, 자료 관리(storage management)는 메모리에 상주하는 DB를 실제로 관리하는 모듈이다. 그리고 세션 관리자(session manager)는 클라이언트의 연결 정보를 관리하는 모듈이며, 이중화 관리자(replication manager)는 DB를 서로 다른 컴퓨터 서버에 복제하기 위한 모듈이다. 이중화 기능에 관해서는 이글의 뒷부분에서 상세히 다룰 것이다.

<그림 3> 메모리 DBMS의 구성 요소
xEdit Image

디스크 DBMS와의 차이

디스크 DB 저장 장소는 기본적으로 디스크인 반면, 메모리 DB의 데이터 저장 장소는 메모리이다. 저장 장소의 차이는 메모리 DB와 디스크 DB는 명확하게 구분 짓는 중요한 요소라고 할 수 있다. 데이터의 기본 저장 장소의 차이만 보더라도 어떠한 DB가 성능이 좋겠구나 하는 것은 쉽게 알아낼 수 있을 것이다. 메모리 DB에 대한 자세한 이해는 다음 호에서 살펴 보겠지만 데이터를 관리하는 기능에 있어서는 메모리 DB나 디스크 DB 간에는 거의 차이가 없다. 그러나 분명히 이들을 서로 구분 짓는 몇 가지 특징들이 있다. 다음은 메모리 DBMS와 디스크 DBMS를 비교 분석한 자료이다.

<표 2> MMDBMS와 DRDBMS의 비교
xEdit Image

 

MMDBMS의 선행 연구

앞서 언급했듯이 MMDBMS가 소개되고 본격적으로 활용된지 불과 4년여에 지나지 않는다. 20년 이상 사용되어 왔던 디스크 기반 DBMS에 비하면 매우 짧다. 그렇다고 MMDBMS에 대한 선행 연구가 전혀 없었던 것은 아니다. 디스크 기반 DBMS에 비하면 짧지만, 이미 20여년 전부터 학계 및 산업계를 중심으로 많은 연구가 진행되어 왔고 실험적으로 여러 시스템들이 만들어지기도 했다.
요즘에 와서야 MMDBMS가 적용 범위가 확장되는 이유는 예전에는 MMDBMS가 적용되기 위한 환경이 미흡했기 때문이다. MMDBMS가 상용화되기 까지 기술적 토대가 되는 어떤 연구들이 있었는지 살펴 보기로 한다.
메인 메모리 DBMS의 요소 기술들의 대부분은 디스크 기반 DBMS에서 연구 또는 사용되었던 기술들을 메인 메모리 DB 환경에 맞게 개선하거나 새로 고안된 것들이다. 메인 메모리DBMS에 대한 기술이 가장 활발하게 연구된 시기는 80년대 초부터 후반기 까지다. 이때는 많은 실험용 MMDBMS들이 소개되었는데, 대표적인 것으로는 MARS, System M 등이 있다. 이들 시스템들은 병행수행제어(concurrency control), 인덱스, 회복(recovery) 기법 등과 같은 주로 자료저장관리자 부분에 대한 연구가 주를 이루고 있었다.
병행수행제어 기법은 디스크 기반 DBMS에서 주로 사용하는 2PL(two-phase locking) 기법을 적용하는 가운데, 이것의 변형인 낙관적(optimistic) 병행수행제어 기법을 도입하기도 하였다. 2PL 기법은 트랜잭션이 소유해야 할 모든 로크를 획득하고 트랜잭션 종료 시 일시에 모든 로크를 반환하는 방법으로, 로크를 취득하는데 대기하는 시간이 많이 걸릴 가능성이 있다.
반면 낙관적 방법은 메인 메모리 DBMS의 트랜잭션 처리 속도가 빠르게 진행된다는 가정 하에, 트랜잭션 충돌 발생을 염려하지 않고 무조건 로크를 취하고 트랜잭션 종료 시점에 검증단계를 거치는 방법이다.
인덱스 기법으로는 AVL 트리와 B 트리 특성을 가진 T 트리가 일반적으로 연구되고 활용 되었다. 그 밖에 성능을 중시한 색인 기법도 활용되었는데, 연결된 버켓 해싱(Chained Bucket Hasing), 확장된 해싱(Extendible Hashing), 선형 해싱(Linear Hashing) 등이 있었다. 디스크 기반 DBMS의 인덱스 기법이 주로 디스크 I/O를 줄이고자 했다면, 위의 인덱스 기법들은 메모리 내의 레코드를 어떻게 하면 빨리 접근할 수 있는가에 중점을 둔 기법들이다.
데이터베이스의 안정성은 로깅과 회복 기법에 의해서 제공될 수 있는데, 디스크 기반 DBMS의 경우 로그 파일을 안전한 디스크에 저장한다. 메인 메모리 DBMS의 경우에는 로그 파일을 디스크에 저장한다면 이를 위한 디스크 I/O로 인해 성능을 중시하는 시스템의 정체성에 반하는 결과를 초래하게 된다. 따라서 80년대에는 비휘발성 메모리를 로그 버퍼로 활용하는 연구와 시스템들이 소개되었다. 그러나 이러한 시스템들은 특수 분야에 맞게 제작된 컴퓨팅 환경에서나 적용이 가능했기 때문에 일반적으로 활용되기는 어려웠다.
90년대 초에는 Starburst, Dali 시스템이 대표적이다. 특히 Dali는 메인 메모리 DBMS 전반에 걸쳐 잘 정리되었다는 평가를 받고 있어서 가장 많이 참조되는 시스템이다. 90년대 중반 이후로는 메인 메모리 DBMS에 있어서 그리 눈에 뛰는 연구는 없었다. 그 이유는 계속적인 연구와 시스템 개발을 위해서는 연구결과가 상용화 되어서 실제 적용되어야 하는 순환 구조를 가져야 하는데, 사실 그 때 까지만 해도 군사, 원자력, 자동화 등 특수 분야를 제외하곤 일반적인 분야에 활용은 거의 없었기 때문이다.
90년대 후반 이후에는 인터넷과 이동통신의 발달로 일반적인 응용분야에 MMDBMS가 적용될 수 있는 환경이 만들어졌다. 이로 인하여 그 동안 업체연구소 또는 학계에서 연구된 결과를 직접 상용화하는 계기가 되었으며, 국내외에서 MMDBMS 전문 벤더들이 속속 등장하였다. 이 시기의 주된 연구 활동은 컴퓨팅시스템 또는 CPU 아키텍처를 고려한 고성능 알고리즘을 개발하는 것이었다. 예를 들어 이전에는 메모리 DB에서 T-tree 인덱스가 B-tree 인덱스보다 우수한 것으로 알려졌으나, CPU는 캐쉬를 고려한 색인 알고리즘에서는 그 현상이 역전되는 결과를 보여주고 있다.
국내에서는 90년대 중반 한국전자통신연구원에서 개발한 Mr.RT라는 자료저장시스템 수준의 메인 메모리 DBMS가 있다. Mr.RT는 이후 국내 몇몇 업체들에 의해서 상용화되었고 그 중 한 제품은 국내 MMDBMS 시장을 선도하고 있다.

MMDBMS 제품 현황

MMDBMS 분야에 대한 연구나 개발, 활용 측면에서 살펴볼 때 우리나라가 가장 활발하게 활동하고 있다. 적어도 MMDBMS 분야에서 있어서 만큼은 세계적인 수준이라고 할 수 있겠다. 그것은 우리나라의 인터넷과 이동통신의 눈부신 발전과 신기술을 채택하려는 IT 종사자들의 성향이 크게 공헌했기 때문이다.
여기서 소개할 MMDBMS는 범용적인 성격을 뛰는 제품 대상으로 한다. 국내에 공급되고 있는 제품으로는 가장 폭넓게 사용되고 있는 Altibase를 비롯해 알라딘(Aladin), 카이로스(Kairos), 알티플러스(RtPlus), 타임스텐(TimesTen), 제로웨이트(Zerowait) 등 10여 가지에 이른다. 이 가운데 타임스텐을 제외한 모든 제품이 국산으로, 국내 MMDBMS의 기술 수준이 외국에 비해 오히려 앞서 가고 있다는 증거라고 할 수 있겠다. 제품별 기능 비교를 객관적으로 서술한다고 하더라도 독자들이 신뢰하지 못할 뿐더러, 다소 민감한 부분이므로 제외하기로 한다. 다만 제품별 특징이 다르고 지원 기능도 다소 차이가 있을 수 있으므로, 제품 선택 시 사용자의 환경에 적합한 제품을 선택하는 것이 중요할 것으로 판단된다.

 

표 3> 국내 공급되고 있는 MMDBMS 제품
xEdit Image

[Top]
No.
제목
작성자
작성일
조회
234회 메인 메모리 DBMS 현황 및 전망
최한열
2005-04-21
14107
223회: 메인 메모리 DBMS의 안정성과 이중화
최한열
2005-04-21
18830
212회 메인 메모리 DBMS 기술
최한열
2005-04-21
15094
201회: 메인 메모리 DBMS의 등장 배경과 개요
최한열
2005-04-21
14384
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다