본문 바로가기

DATABASE

[Tech Report] - Hybrid MM DBMS `ALTIBASE 4`

지난 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 구성 예

-------------------------------------------------------------------------------------------------------------------------------------------

교육도시로 통하는 관문, 알티베이스 4‘철통수비’
충북 지역 내 11개 지역 교육청과 792유치원/초/중/고등학교를 관할하는 충북교육청은 홈페이지를 통해 기본적인 공지사항 전달은 물론 교수 학습 방법과 토론, 동호회 등의 다양한 지원 서비스를 제공하고 있다. 1만 7000여명의 교직원과 26만 1000여명의 학생들이 활용하는 교육의 관문인 홈페이지 시스템의 성능 개선을 위해 충북교육청은 알티베이스 4를 도입, 메모리 기반의 DBMS로 안정적인 서비스를 수행하고 있다.

792개 학교의 1만 7000여 교직원과 26만 1000여명의
유치원/초/중/고등학생 교육을 총괄하는 충북교육청은 ‘세계화를 주도하는 창의적인 인재 육성’을 교육 목표로 교단 선진화와 교육 개혁을 추진하고 있다.

산하에 11개 지역 교육청(청주/충주/제천/청원/보은/옥천/영동/진천/괴산증평/음성/단양)을 관할하는 충북교육청의 업무는 학습 분위기 향상 및 문화 활동 지원, 교육 환경 개선, 행정혁신 및 교육 복지 사업 추진 등의 지역 교육청 사업 지원은 물론 교직원, 학부모, 학생 등에 대한 민원 처리에 이르기까지 다양하고 광범위하다.

이같은 충북교육청의 정책 및 활동 상황과 관련 정보를 볼 수 있는 창구가 있다. 다름 아닌 충북교육청의 홈페이지(
www.cbe.co.kr)가 그것이다.

충북교육청의 홈페이지는 다른 교육청과 달리 교육청 소개나 공지사항 등의 기본적인 정보 외에 교수 학습 지원 서비스(교수학습자료실, 지식창고, e러닝 연수 등)나 토론방, 동호회 등의 커뮤니티 서비스
와 외국어 홈페이지, 음성변환서비스 그리고 이에 더해 각종 채용/시험(합격자 조회) 정보도 제공하고 있다.

<그림> 충북교육청 홈페이지 화면

“접속자 폭주로 인한 서비스 중단을 막아라”
지난해 여름, 충북교육청은 홈페이지 서비스 향상을 위한 성능 개선의 필요성을 인식하고, 대책 마련에 나섰다. 가장 직접적인 요인이 된 것은 접속자 폭주에 따른 홈페이지 서비스의 불안정.

충북교육청은 홈페이지 내에서 교원(유아/특수/초등/중등) 임용 시험과 일반직 임용 시험, 검정고시(중입/고입/고졸) 등 7가지의 시험과 기간제 교사, 보결전담 강사, 특기 적성 교육 강사, 보조원 등의 채용에 대한 합격자 조회 서비스를 제공하고 있다. 특히 이같은 채용 시험 및 합격자 발표는 연초, 연말 등 연중 특정 기간이 주로 진행되는데, 지난해 상반기에 이로 인한 접속 증가로 서비스가 중단되는 상황이 발생하기도 했다.

충북교육청은 이같은 서비스 중단의 원인이 기존 시스템의 성능 미약에 있는 것으로 판단, 새로운 시스템 구축을 고려하게 됐다.

기존에 충북교육청의 홈페이지 시스템은 리눅스 운영체제 하에 아파치 웹 서버와 MySQL DB 시스템으로 운영되고 있었다. 시스템의 리소스 사용률은 30%를 넘지 않았지만, 사용자가 증가할 경우 디스크 I/O에서의 지나친 병목 현상과 웹 서버의 불안정 현상으로 운영에 어려움이 많았다.

충북교육청
교육정보화과의 홈페이지 담당자는 “DB 시스템의 디스크 I/O 병목 문제도 심했지만, DBMS와 웹/WAS를 한 대의 서버에서 운영함에 따른 로드 분산 문제가 가장 큰 원인이라고 판단했다”고 설명했다.

알티베이스 4의 관리 용이성과 기술지원 ‘만족’
이런 문제점을 파악한 뒤 충북교육청 정보과는 기존 시스템을 대체할 수 있는 인프라를 검토하기 시작했고, 마침 전자정부 컨퍼런스에서 알티베이스의 MM DBMS를 접하게 됐다고 한다.

활용하는 데이터 량은 많지 않지만, 빠른 프로세스와 피크 타임시의 로드밸런싱이 필요한 충북교육청의 홈페이지 DB 시스템으로 알티베이스 MM DBMS가 적합하다는 생각에 이른 것.

이에 충북교육청은 당시 신제품이었던 하이브리드 MM DBMS인 알티베이스 4를 도입하고, DB 시스템과 웹/WAS 시스템을 분리했다. 현재 데이터베이스는 하이브리드 MM DBMS 중 메모리 테이블에 상주시켜 활용하고 있으며, 사용 용량은 8GB 정도다. 추후 데이터베이스 증가 추이에 따라 32GB까지 확장하는 것을 고려해 시스템을 구현했다는 것이 충북교육청
교육정보화과의 설명이다.

충북교육청은 시스템 구축 후 현재까지 합격자 발표 및 조회 업무가 몰릴 때에도 DB 시스템은 물론 웹/WAS 시스템도 안정적으로 운영돼, 알티베이스 4 도입에 만족하고 있다는 의견을 밝혔다.

특히 충북교육청
교육정보화과는 관리해야 할 요소가 이전의 디스크 기반 DBMS에 비해 매우 적다는 점과 알티베이스의 기술지원 체제가 신속하다는 점을 도입 후 혜택으로 꼽았다.

알티베이스 4 자체의 관리 기능을 통해 초기 설정만 하면, 그 이후엔 튜닝 같은 별도의 작업이 필요 없어 관리자가 그만큼 DBMS에 대해 관리하던 시간과 노력이 줄어들었다는 것이다. 또한 알티베이스의 기술지원 팀이 원격지 모니터링 프로그램을 통해 리소스 활용이나 로드 밸런싱, 로그 관리 등의 기본적인 모니터링은 물론 요청시 빠르게 기술지원을 해줘, 조그마한 이상이 발견됐을 때에도 사전에 조치를 취할 수 있었다고 한다.

충북교육청
교육정보화과의 홈페이지 담당자는 “알티베이스 MM DBMS는 이전의 DBMS와 달리 관리가 편리하다. 구조상 디스크 I/O나 트랜잭션 처리량에 대한 모니터링이 필요 없기 때문에, 그야말로 리소스 활용 정도만을 체크하면 안정성에 문제가 없다”고 관리 용이성에 대해 설명했다.

<표> 충북 교육청 시스템 구성도
<표> 충북교육청 Case Briefing

'DATABASE' 카테고리의 다른 글

[MYSQL] C API  (0) 2011.10.16
웹 서버 설치 - MiniSQL DBMS 설치  (0) 2011.10.16
MMDBMS의 활용가능 분야와 활용 방법  (0) 2011.10.16
연재/하이브리드 MM DBMS  (0) 2011.10.16
[MYSQL] C library  (0) 2011.10.16