<테마특강>메인메모리 상주 DBMS의 개발 방향과 이용 방안

정광철

△89년 인하대대학원 전산학 석사

△92년 LG소프트웨어 근무

△99년 한국전자통신연구원(ETRI) 근무

△2000년∼현재 알티베이스 이사, 부설 리얼타임기술연구소장

D램 부분의 대용량 메모리 칩 개발과 비휘발성 반도체 메모리 부분 상품화 등 하드웨어 발전으로 인해 주기억장치 상주 DBMS의 현실성이 대두됐다. 따라서 실시간 처리를 요구하는 애플리케이션을 지원하기에 적합한 주기억장치 상주형 DBMS(MRDBMS:Memory Resident DBMS)에 대한 개발이 필요하다.

실시간 DBMS 개발은 기존의 디스크 상주 RDBMS를 실시간 환경에서 사용할 수 있도록 확장하는 방식과 주기억 상주 DBMS를 개발하는 방식으로 접근할 수 있다. RDBMS를 확장하는 접근방식은 일반적으로 주기억장치 버퍼를 매우 크게 확장함으로써 실시간 성능의 병목이 되는 디스크 입출력 횟수를 줄이는 방법이고, 주기억 상주 DBMS 접근방식은 전체 DB를 주기억장치에 구축하고 운영함으로써 디스크 입출력으로 인한 부담을 없애 고성능 실시간 요구조건을 만족시켜주는 방식이다.

전자는 후자에 비해 상대적으로 구현하기 쉬운 장점이 있으나 주기억장치 버퍼를 크게 늘려도 DBMS가 디스크의 특성에 맞추어 최적화돼 있기 때문에 응용이 요구하는 실시간 성능을 만족시키는 데 근본적인 한계를 가지고 있다. 이에 반해 후자는 탁월한 실시간 성능을 제공한다. 현재 하드디스크의 접근속도는 보통 5∼10㎳이나 S램의 접근속도는 8∼35㎱, D램 접근속도는 90∼120㎱이므로 주기억 상주방식이 제공하는 성능이 탁월함을 알 수 있다. 그러나 이 방식은 DBMS를 주기억장치의 특성에 맞게 새롭게 설계해야 하므로 구현하기 어려운 면이 있으며 주기억장치가 휘발성이어서 시스템 오류 회복이 매우 중요한 과제로 부상하게 된다.

따라서 차세대 실시간 DBMS는 실시간 응용 요구를 만족시킬 수 있는 주기억장치 상주형 DBMS 방식을 채택한다. 이때 실시간 DB가 사용할 공간을 물리적 기억장치(피지컬 메모리)에 미리 할당하고, 이들 실시간 DB가 저장된 페이지들이 운용체계에 의해 스와프되지 않도록 보장해야 한다.

향후 차세대 실시간 DBMS는 다양한 실시간 응용분야와 운용환경에 적응할 수 있도록 다음과 같은 방향으로 개발돼야 할 것이다.

첫째, 융통성 있는 시스템 구조다. 기존 실시간 DBMS는 대부분 특정 응용분야를 염두에 두고 특정한 운용환경을 위해 개발됐기 때문에 다른 응용분야나 다른 운용환경에서 사용될 수 없었다. 차세대 실시간 DBMS는 응용분야의 특성에 따라서 쉽게 커스터마이즈되고 목표 운영환경에 쉽게 이식될 수 있도록 융통성 있는 시스템 구조를 가져야 한다.

둘째, 부착형·독립형 운영구조여야 한다. 실시간에 응용에 사용되는 DBMS는 DBMS를 포함하는 전체 시스템 환경 측면에서 고려할 때 부착형 운영구조와 독립형 운영구조로 구분할 수 있다. 부착형은 DBMS 자체의 다양한 기능보다는 매우 빠른 저장과 검색을 주목적으로 하는 실시간 검색 시스템 사용 응용환경을 위한 것이다. 이 구조의 DBMS는 기존 범용 DBMS와 연동해 동작하는 것이 일반적이다. 독립형은 실시간 성능 요구조건을 만족시킬 뿐만 아니라 범용 DBMS의 고유한 기능들도 완벽하게 갖춰 기존 범용 DBMS와 연동될 필요없이 독립적으로 운용될 수 있는 구조로 부착형에 비해 상대적으로 복잡하고 규모가 큰 DBMS가 된다. 따라서 차세대 실시간 DBMS는 기본적으로 독립형 구조를 가지면서도 경우에 따라 불필요한 모듈을 제거한 가벼운 구조의 부착형으로도 운영될 수 있도록 개발해야 할 것이다.

셋째, 다양하고 선택 가능한 기능이 제공돼야 한다. 실시간 DBMS는 데이터의 순차적 접근과 인덱스 접근방법을 모두 지원해야 한다. 인덱스 접근은 범위탐색이 가능한 순서유지 계열 인덱스 접근과 정확탐색이 가능한 무작위 계열의 해싱접근이다. 일반적으로 차세대 실시간 DBMS에서는 해시 접근기법과 T-트리 접근기법을 최적화해 지원한다. 또 응용분야의 성격에 따라 선택적으로 트랜잭션 스케줄링 기법을 사용할 수 있어야 한다. 이와 함께 선입선출(First Come First Serve) 잠금기반 실시간 동시성 제어, 낙관적 실시간 동시성 제어 등 실시간 응용에 따라서 가장 적합한 방법을 사용할 수 있도록 해야 한다. 특히 디스크 상주형 데이터베이스를 위해 개발된 회복 기법들은 구조상의 차이로 인해 실시간 DBMS에 그대로 적용될 수 없는만큼 비휘발성 메모리 사용으로 인한 새로운 회복방법을 개발할 필요가 있다.

넷째, 사용자 인터페이스다. 기존 RTDBS의 문제점 중 하나가 표준화된 프로그래밍 인터페이스를 제공하지 못한다는 것이다. 이는 응용 프로그램 작성을 어렵게 할 뿐만 아니라 기존 DB 프로그램들과의 호환성에도 문제가 된다. 따라서 차세대 RTDBMS는 시간제약 조건을 포함하는 SQL 질의어를 포함해 ODBC, JDBC 같은 표준 사용자 인터페이스를 제공해야 한다.

여섯째, 실시간 DBMS 운용환경에서 여러 가지 트랜잭션 유형들에 종료시한 안에 처리를 보장하는 실시간성을 제공해야 한다. 일반적으로 초당 1000개 이상의 TPC-B 타입 트랜잭션 처리율과 95%의 TPC-B 타입 트랜잭션에 몇백초 이내의 응답시간을 만족해야 한다.

일곱째, 서비스 안정성을 위해 시스템의 무정지 기능이 제공돼야 한다. 예를 들어 두개의 서버 시스템을 준비하고 한 서버는 DB를 서비스하고 한 시스템은 대기 상태로 있다가 서비스중인 시스템에 장애가 발생하면 대기 시스템이 곧바로 서비스할 수 있도록 하는 것이다. 또한 시스템 부하 분산과 높은 가용성을 위해 두 시스템이 동시에 트랜잭션을 나누어 처리하다가 이 가운데 한 서버에 장애가 발생하면 다른 한 서버가 모든 트랜잭션을 처리하도록 할 수도 있다. 이같은 무정지 기능을 위해서는 각각의 서버에 중복된 DB를 실시간으로 일치하도록 하는 것이 중요한 과제가 된다.

여덟째, 기존 DB 및 웹과 연동을 갖도록 해야 한다. 64비트 운용체계를 채택한 컴퓨터가 일반화하는 추세라 하더라도 하드웨어의 기술적인 문제 때문에 주메모리 크기의 한계가 존재한다. 현재 64비트 컴퓨터가 탑재하고 있는 주메모리의 최대 크기는 64∼128GB 정도다. 이 경우 주메모리 DB의 최대 크기는 약 32∼64GB이므로 이것보다 큰 대용량 데이터베이스의 관리는 힘들게 된다. 대용량 데이터베이스 서비스 환경에서 MRDBMS의 역할은 활용도가 높은 데이터를 전용으로 처리하는 데이터베이스 캐싱 서버로의 보완역할을 담당하는 것이다. 이를 위해 MRDBMS는 기존 디스크 기반 DBMS와 연동하기 위한 실시간 에이전트와 같은 기능을 제공해야 한다.

최근은 물론 앞으로 대부분의 DB는 인터넷으로 서비스될 것이다. 인터넷 속도 또한 지금보다는 훨씬 빨라질 것이므로 빠른 속도를 요하는 데이터베이스 처리도 인터넷으로 가능하게 될 것이다. 따라서 차세대 RTDBMS는 웹서버와 연동하는 웹게이트웨이를 제공해야 할 것이다.

MRDBMS는 FA나 공정제어, 의료시스템, 시뮬레이션, 항공시스템, 로봇, 컴퓨터통합생산(CIM) 통신, 이동컴퓨팅, 사이버은행, 사이버증권, 웹 인증, 실시간 광고 등 실시간 응용과 빠른 트랜잭션 처리가 필요한 분야에 매우 적합하다. 인터넷포털, 게임, 채팅 사이트들의 페이지 뷰나 방문자 수는 인터넷서비스 업체를 평가하는 중요한 기준이다. 하루에 수백만에서 수천만 페이지 뷰가 발생하는 사이트에서 이 수를 정확히 파악하는 일은 기존의 디스크 기반 DBMS로는 처리하기가 곤란하다. 그리고 이같은 일은 아직 웹 서버의 로그 파일을 분석하는 방식을 사용하고 있는데 이 방법은 방문 데이터를 실시간으로 처리할 수 없을 뿐만 아니라, 웹서버를 탑재한 시스템에 부하를 줌으로써 서비스 전체 성능을 저하시키고 있다.

웹로그 방식이 아닌 웹서버에 전혀 부하를 주지 않으면서 페이지 뷰나 방문자 데이터를 실시간으로 트래킹하고 각 웹 사이트의 상태를 실시간으로 분석하기 위해서는 무엇보다도 빠른 트랜잭션 처리가 요구된다. 따라서 웹 트래킹 분야에 메모리 상주 DBMS를 활용하면 효과적으로 처리할 수 있다. 이렇게 함으로써 각 인터넷사이트에 대한 실시간 인증은 물론 실시간 빌링 조회도 가능해 인터넷사이트의 신인도를 높일 수 있다.

이동통신시스템이나 PCS에는 가입자의 위치정보를 관리하는 데이터베이스 시스템인 위치 레지스터라는 가입자 위치관리 시스템으로 HLR/VLR가 있다. 이동통신에서는 가입자가 수시로 관할구역을 이동하면서 전화 서비스를 요청한다. 즉, 망 내 위치 레지스터간의 데이터 이동이 빈번하고 이동교환기와 위치 레지스터의 데이터 전송이 신속하게 이루어져야 하므로 실시간 처리가 필요하다. HLR/VLR는 모든 가입자 또는 방문 가입자를 인증하는 데 필요하게 된다. VLR는 보통 교환기 내부에 들어 있으나 HLR는 중앙에 하나 존재하게 되므로 MRDBMS를 적용하기에 적당한 응용 분야다.

실시간 DB시스템은 지금까지 특정한 응용들만의 필요를 충족시킬 목적으로 DBMS를 전문으로 하지 않는 사람들에 의해서 독자적으로 개발됐다. 이러한 이유로 다른 응용들에 사용하기에는 큰 제약이 따랐으며 그들의 성능이 특정 하드웨어의 성능에 크게 의존하기 때문에 이식성이 부족하게 됐고 이로 말미암아 널리 사용되지 못했다.

이러한 문제를 해결하기 위해 지금까지 「애드 혹(ad-hoc)」으로 설계, 구현돼왔던 접근방법을 탈피해 DBMS를 전문으로 개발하는 사람들이 요구사항을 분석하고, 조직적이고 체계적인 접근방법으로 개발하고자 하는 그동안의 노력이 이제는 결실을 맺고 있다.

최근 국내에서도 디스크 기반 DBMS는 물론 메모리 상주 DBMS에 대한 연구가 진행되고 있으며 이미 몇몇 업체를 중심으로 제품이 출시되고 있다. 특히 메모리 상주 DBMS의 경우 앞에서 언급한 차세대 RTDBMS의 요구사항을 채택한 제품이 선보이고 있어 향후 주메모리 DB 시장전망을 밝게 하고 있다.


브랜드 뉴스룸