지난 2000년 알티베이스는 메인 메모리 DBMS(Main Memory DBMS, 이하 MM DBMS)를 출시, 그동안 디스크 기반 DBMS(Disk Resident DBMS, 이하 DR DBMS)가 제공하지 못했던 빠른 성능과 실시간 처리에 대한 해법을 제시하면서 금융, 통신 분야를 중심으로 크게 각광받았다.
그러나 MM DBMS의 메모리 제한에 의한 DB 사이즈의 한계는 기존의 상용 DBMS를 대체하기에는 역부족이었다. 이 때문에 MM DBMS를 도입한 대다수의 기업들은 대용량 데이터 처리를 위해 추가로 DR DBMS를 도입해야 했으며, 이기종 DBMS 구매에 따른 중복 투자와 개발 비용, 유지 보수비용의 증가 등도 감수해야 했다.
따라서 고성능 데이터 처리와 대용량 데이터 처리를 모두 보장하는 새로운 개념의 DBMS 등장에 대한 요구가 높아졌고, 이러한 시대적 요구에 힘입어 MM DBMS와 DR DBMS를 결합시킨 새로운 형태의 하이브리드 MM DBMS ‘ALTIBASE 4’가 탄생하게 됐다.
<그림 1> 고객의 요구 패턴에 따른 MM DBMS의 기술 발전 방향
메모리와 디스크 DBMS의 결합 ‘알티베이스 4’
하이브리드 MM DBMS는 MM DBMS와 DR DBMS의 기능을 모두 갖춘 DBMS로, 액세스가 빈번한 데이터를 정의해 메모리에 캐싱, 효율적인 액세스를 가능하게 해준다는데 의미가 있다. 즉, 메모리 테이블 스페이스를 정의하고 보다 빈번한 액세스가 발생하는 데이터를 이 메모리 테이블 스페이스에 할당함으로써 보다 진보된 캐싱을 이용할 수 있는 것이다.
그렇다면 어떻게 액세스 빈도에 따라 메모리와 디스크에 각기 다르게 저장하고 관리해 나갈 수 있는 것일까? 빈번하게 액세스가 발생하는 데이터는 메모리에, 호출이 많지 않은 데이터는 디스크에 상주시키는 원리가 바로 대용량 데이터베이스의 특징과 트랜잭션 처리 속도란 두 마리 토끼를 잡을 수 있는 알티베이스 4 하이브리드 MM DBMS의 핵심 기술이다.
하이브리드형 데이터 관리의 중추 ‘Storage Manager’
하이브리드 MM DBMS에서 메모리/디스크 간의 데이터 정의 및 관리의 핵심은 ‘저장 관리자(Storage Manager)'이다. 동시성제어 및 회복을 통한 데이터보호를 담당하는 모듈인 저장관리자는 락(Lock) 관리, 인덱스 관리, 데이터 저장소 관리, 로그파일 관리 등을 수행한다.


<그림 2> Hybrid MM DBMS ‘ALTIBASE 4’의 아키텍처 tech_image2.jpg
하이브리드 MM DBMS의 아키텍처를 도식화 한 <그림 2>에서 볼 수 있듯이 저장관리자의 트랜잭션 매니저와 리커버리 매니저, 버퍼 매니저를 통해 메모리 데이터베이스와 디스크 데이터베이스가 능동적으로 운영된다. 즉, 디스크에 있는 데이터를 접근하기 위해 디스크 테이블의 경우 버퍼를 통해 접근하고, 메모리 테이블인 경우에는 초기 데이터베이스 구동시 메모리 테이블 스페이스에 모든 데이터를 올려놓게 된다.
복구를 위해 사용하는 로그파일 측면에서는 메모리 테이블과 디스크 테이블에서 발생하는 트랜잭션을 순차적으로 일관성 있게 관리하기 위해 동일한 로그파일을 이용하도록 인터페이스를 통합했으며 데이터 저장소는 메모리 테이블을 위한 메모리 테이블 스페이스 개념을 도입, 디스크 테이블의 일반 테이블 스페이스와 구분했다.
또한 저장관리자는 레이어 구조로 구성되어 있기 때문에, 구현의 복잡성을 줄임으로써 구조적 안정성이 개선됐고 레이어별 단위 테스트가 용이해져 결함률을 줄일 수 있다.
가용성과 확장성 제공하는 ‘Data Replication’
데이터 이중화(Replication)는 원격지의 서버를 활용해 데이터를 실시간으로 전송시켜 동일한 데이터 셋을 가지는 데이터베이스를 양쪽에 구축하는 기술이다. 이중화 기술을 이용하면 각 서버는 최소한의 간섭으로 독립적으로 운용될 수 있기 때문에 가용성(High Availability)과 확장성(Scalability)을 높일 수 있다. 이중화 방식은 여러 가지가 있지만 알티베이스는 트랜잭션 로그 기반 이중화 기술을 이용한다. 그리고 이중화 로그 전송을 비동기적으로 수행하여 트랜잭션의 독립성과 성능을 보장한다.

하이브리드형 데이터 관리의 중추 ‘Storage Manager’
하이브리드 MM DBMS에서 메모리/디스크 간의 데이터 정의 및 관리의 핵심은 ‘저장 관리자(Storage Manager)'이다. 동시성제어 및 회복을 통한 데이터보호를 담당하는 모듈인 저장관리자는 락(Lock) 관리, 인덱스 관리, 데이터 저장소 관리, 로그파일 관리 등을 수행한다.
<그림 3> 알티베이스 이중화 개념 설계도 tech_image3.jpg
<그림 3>을 살펴보면, 3대의 서버(Server A, B, C)가 2개의 이중화 객체로 연결이 되어 있다. 각 서버 별로 이중화 매니저가 있어서 서버에 존재하는 이중화 담당 쓰레드(송신, 수신)를 관리한다. 이중화 송신 쓰레드는 트랜잭션 로그를 읽어서 연결된 이중화 객체를 통해 이중화 로그(Xlog)를 전달하는 역할을 하고 수신 쓰레드는 송신 쓰레드로부터 전달되어진 이중화 로그를 분석해 트랜잭션을 수행한다. B서버에서는 A서버와의 이중화(객체 REP_AB)를 위한 송, 수신 쓰레드가 모두 존재하므로 액티브-액티브(Active-Active) 상태로 운영중이고 C서버에서는 이중화 송신 쓰레드가 없고 수신 쓰레드만 있어 A서버가 액티브로 동작하고 C서버는 데이터를 받기만 하는 상태다. 이와 같이 알티베이스 이중화는 구성 방식에 따라서 다른 모델로 운영이 가능하며 확장성을 최대한 높일 수 있는 방식으로 구성함으로써 여러 노드를 활용해 성능을 향상시킬 수 있다.

<그림 4> 하이브리드 MM DBMS의 TPC-H 성능 비교 결과 tech_image4.jpg
의사 결정 시스템과 같은 대용량 DBMS를 위한 평가도구로 활용되는 TPC-H(www.tpc.com) 테스트 결과, 알티베이스 4 기반에서 모든 테이블을 메모리로 설정한 경우와 테이블 규모나 액세스 빈도에 따라 메모리와 디스크로 테이블을 나눠 하이브리드 환경에서 운영한 경우의 성능이 높게 측정됐다.
하이브리드 MM DBMS의 진화를 꿈꾼다
모든 하이브리드 시스템이 그렇겠지만, DBMS에서도 통합되는 구성요소들은 뒤섞여서는 안 될 고유의 특성과 반드시 하나로 통합(Merge)되어야 할 특성이 서로 공존하고 있다. MM DBMS와 DR DBMS의 하이브리드 시스템은 실제 업무 환경에 따라 좀 더 세밀하고 다양한 구성 예제가 제시될 수 있을 것이다. 이러한 작업은 향후 메모리와 디스크뿐 아니라 다중적인 환경에서의 멀티레벨 저장구조로 진화하기 위한 중요한 발판이 될 것이다.
하이브리드 MM DBMS의 특징
MM DBMS에 DR DBMS 기능 추가
메모리 테이블을 처리하기 위해 기존의 테이블을 구조화한 데이터 페이지 개념은 그대로 두고, 디스크 테이블을 처리하는 버퍼 매니저와 저장 공간의 관리를 위한 테이블 스페이스 개념을 추가한 것이 특징. MM
DBMS의 단점인 대용량 DB의 처리 문제를 해결했고 메모리 테이블의 처리 속도는 기존 MM DBMS 수준을 그대로 유지할 수 있다.
하이브리드 DBMS를 지원하는 새로운 SQL 해석기
DBMS 내부에서 테이블 특성(메모리, 디스크)에 따라 SQL문이 따로 해석된다. 디스크 테이블의 경우 일정량을 초과하는 인덱스를 검색하면 전체 테이블 검색보다 디스크 I/O 비용이 더 든다. 반면 메모리 테이블은 대부분의 데이터가 메모리에 존재하기 때문에 인덱스 검색을 하는 것이 더 유리하다. 이같은 상황을 해석기가 자동적으로 판단, SQL문을 해석하게 된다.
디스크 테이블과 메모리 테이블간의 SQL 수행 가능
기존의 시스템 구조로는 MM DBMS와 DR DBMS를 같이 사용하더라도 이질적인 DBMS이기 때문에 SQL문을 이용한 DBMS 간 연결이 어려웠다.
메모리/디스크의 통합 저장관리자 제공
메모리 테이블과 디스크 테이블에서 발생하는 트랜잭션을 순차적으로 일관성 있게 관리하기 위해 동일한 로그파일을 이용하도록 통합했으며 데이터 저장소는 메모리 테이블을 위한 메모리 테이블 스페이스 개념을 도입, 디스크 테이블의 일반 테이블 스페이스와 구분했다.
테이블 위치(메모리/디스크)에 상관없이 보여지는 테이블 접근 경로
테이블 생성시 테이블 위치가 지정되면 테이블 이름만으로 접근이 가능해, 개발자는 테이블의 위치에 상관없이 프로그램을 만들고 데이터를 이용할 수 있다.
--------------------------------
MM DBMS/DR DBMS의 병행 운영 vs. Hybrid MM DBMS 운영
하이브리드 MM DBMS에 대한 쉬운 이해를 위해 한 가지 예를 들어보자. 만약 A라는 은행에서 15일 동안 거래 내역에 대한 조회와 입력이 빈번하게 일어나 시스템에 부하가 많이 발생해 부분적으로 MM DBMS를 도입했다면 <그림 1>과 같은 시스템이 구성될 것이다.
거래내역을 보여주기 위해서는 계좌정보 테이블이 필요하고 MM DBMS도 고객 원장 테이블이 필요하게 된다. 그리고 변경되는 내역에 대해서는 DR DBMS와의 동기화 작업이 주기적으로 일어나야 하므로 별도의 애플리케이션이 필요하게 된다. 그리고 15일 이후의 거래내역은 DR DBMS가 관리하는 ‘거래내역2’ 라는 테이블에 저장한다고 가정하면 30일 동안의 거래내역을 조회하는 작업에 대해서는 양쪽 테이블의 내용들을 합치는(Merge) 작업 또한 번거롭게 애플리케이션에서 처리해야 한다.
만약 이 업무를 하이브리드 MM DBMS를 이용해 구성한다면 어떻게 될까? <그림 2>처럼 간단한 형태가 될 것이다. 하이브리드 MM DBMS는 사용빈도별 데이터 가치 부여를 통해 메모리 공간의 절약과 애플리케이션 구성의 단순화를 꾀할 수 있다.
<그림 2>와 같이 트랜잭션 빈도수가 높은 거래내역1(최근 15일 거래내역)을 메모리 테이블로 생성하고 고객원장, 계좌정보, 15일 이전에 발생된 거래내역 등 나머지 정보를 담은 거래내역2 테이블은 트랜잭션 빈도수가 낮으므로 디스크 테이블로 구성할 수 있다. 이처럼 구성할 경우 별도의 DR DBMS가 필요 없을 뿐 아니라 SQL문을 통해 디스크, 메모리 테이블에 동시에 접근할 수 있어 메모리상에 별도의 계좌정보, 고객원장 테이블을 둘 필요가 없다.

<그림1>MMDBMS와 DRDBMS 혼용 구성 예

<그림2> 하이브리드 MM DBMS 구성 예

