검수요청.png검수요청.png

알티베이스

위키원
이동: 둘러보기, 검색
알티베이스(Altibase) 로고
알티베이스(Altibase) 로고와 글자

알티베이스(Altibase)는 한국의 ㈜알티베이스가 개발한 메모리 기반의 관계형 데이터베이스 관리 시스템(RDBMS)이다. ㈜알티베이스 설립자인 김기완이 처음 개발했다. 모든 데이터를 메모리에 올린 후 처리하기 때문에 속도가 빠르다. 김기완은 ㈜알티베이스를 퇴사한 후 알티베이스(Altibase)와 유사한 인메모리 방식의 관계형 데이터베이스 관리 시스템(DBMS)인 선디비(SUNDB)를 개발했다.

개요

알티베이스(Altibase)는 우리나라에서 개발된 MMDBMS(Main Memory 기반 DBMS)이다.[1] 알티베이스(Altibase)는 멀티 플랫폼이며 대부분의 모든 엔터프라이즈 운영 체제와 플랫폼에서 실행할 수 있다.

역사

  • 2000년 : 알티베이스(Altibase)는 상업적 용도로 메모리 내장 데이터베이스를 만들었다. 그 제품을 Spiner 1.0이라고 불렸다.
  • 2002년 : 알티베이스는 Spiner의 두 번째 버전을 출시하고 제품명을 알티베이스(AlTibase) v2.0으로 변경하고, 그 후 알티베이스(Altibase)는 알티베이스(Altibase) v3.0이라 불리는 MVCC(Multi-Version Concurrency Control)가 적용된 인 메모리 데이터베이스를 출시했다.
  • 2004년 : 알티베이스는 버전 4를 출시하면서 Altibase HDB v4.0으로 이름을 변경했다.Altibase HDB는 RAM과 디스크를 단일 데이터베이스에 결합한 "하이브리드(hybrid)"아키텍처를 갖춘 세계 최초의 메모리 내장형 데이터베이스이다.
  • 2006년 : 알티베이스는 "Spatial"기능을 갖춘 Altibase HDB v4.1을 출시했다.
  • 2007년 : 알티베이스는 Altibase HDB V5.0을 출시했다.
  • 2011년 : 알타베이스는 ALTIBASE HDB V5.5.1을 출시했다.
  • 2012년 : ALTIBASE HDB v6.0을 출시했다.
  • 2013년 : 알티베이스는 ALTIBASE XDB를 발표했고, ALTIBASE HDB에 매모리 분석 기능을 도입했다.
  • 2015년 : 알티베이스는 ALTIBASE v6.5를 출시했고, ALTIBASE XDB는 알타베이스에 통합되었다.
  • 2018년 : 알티베이스는 오픈 소스가 되었다.
  • 2019년 : 알타베이스는 VLTIBASE v.7.0을 출시했다.

특징

  • 데이터 모델 : 알티베이스(altibase)의 데이터 모델은 관계 모델을 채택하고 있다. 관계 모델은 세 가지 주요 요소를 포함하는데, 구조는 데이터베이스에 저장되거나 접근하는 객체 단위 즉, 테이블, 뷰, 인덱스 등을 칭하는 것으로서, 이것들은 연산자에 의해 조작되는 단위가 된다. 연산은 데이터베이스의 데이터와 구조를 사용자들이 조작 할 수 있도록 허용하는 행위들을 정의한 것으로서, 무결성 규칙을 수반한다. 무결성 규칙은 데이터와 구조에 허락된 연산을 다루기 위한 법칙으로서, 데이터와 구조를 보호하기 위한 것이다.
  • 엔진구조 : 알티베이스 서버는 내부적으로 다중 쓰레드 구조로 되어 있습니다. 클라이언트-서버 구조하에서, 한 개의 클라이언트는 한 개의 서버 쓰레드와 세션을 구성한다. 클라이언트-서버 구조는 기존의 RDBMS가 제공하는 형태로서 응용 프로그램의 작성이 용이하고 데이터베이스 관리가 편리한 장점이 있다.
  • 인터페이스 : 알티베이스는 기존의 실시간 데이터베이스 시스템과는 다르게 범용성을 추구하는 일환으로 산업 표준 인터페이스를 지원한다. 데이터베이스 질의어로 SQL92를 지원하고 있다. 알티베이스는 SQL92 표준 사양의 Full Spec을 제공하고 있다. 프로그래밍 인터페이스로는 ODBC, JDBC, C/C++ Precompiler, LDAP 등을 지원하고 있기 때문에 기존에 작성된 데이터베이스 응용 프로그램의 변환을 최소화 할 수 있습니다.
  • 다중버전 기법 : 알티베이스는 다중버전 기법을 이용한 동시성 제어를 수행한다. 다중버전 기업은 하나의 데이터에 대해 여러 개의 버전을 유지하여 읽기와 쓰기 연산에 대한 충돌을 방지함으로써 최대의 성능을 발휘 할 수 있도록 하이었던 수정된 데이터에 대한 읽기 연산이 대기하거나, 이미 읽힌 데이터에 대해 수정 연산이 장기간 대기하는 문제점을 완벽히 제거하였으며, 데이터베이스를 종료하지 않고도 즉시 백업 할 수 있는 hot-backup 시스템의 가능성을 지원한다.
  • 트랜잭션 : 알티베이스는 Hybrid DBMS의 구조에 맞추어 최고의 성능을 낼 수 있는 트랜잭션 구조와 그것과 관련된 다양한 기능을 제공한다. 먼저 데이터베이스 내에서 동시에 수행될 수 있는 트랜잭션의 개수를 프로퍼티를 이용해서 조절할 수 있으며, 또한 효율적인 서버 운영을 위해 별도로 지원하는 autocommit 모드를 사용할 수 있도록 하고, 알티베이스 시스템이 제공하는 트랜잭션의 고립화 수준으로는 read committed(=0), repeatable read(=1), no phantom read(=2)로서 사용자의 필요에 맞추어 적절한 고립화 수준으로 선택, 사용할 수 있다.
  • 더블 라이트 버퍼(double write buffer) : 시스템의 페이지 크기와 파일 시스템의 물리적 페이지 크기가 같지 않을 경우에, Disk I/O를 수행하다가 비정상 종료가 되면 페이지가 온전하지 못한 상태로 남아있게 될 수 있다. 이런 현상을 방지하기 위하여 알티베이스는 페이지 플러싱시에 디스크의 특정 영역에 존재하는 더블 라이트 버퍼 영역에 같은 이미지를 미리 저장해 두었다가 알티베이스의 재시작 시에 더블 라이트 버퍼의 내용과 실제 페이지의 내용을 검토하여 온전하지 못한 페이지들을 복구한다.
  • 퍼지&핑퐁 체크포인트 : 알티베이스는 최근의 데이터베이스 상태를 안전하게 백업 데이터베이스로 반영하기 위해 퍼지&핑퐁 체크포인트를 수행한다. 메인 메모리데이터베이스에서의 퍼지 체크포인트는 모든 변경된 데이터 페이지가 백업 데이터베이스로 내려가 현재 수행 중인 트랜잭션의 수행에 영향을 줄 수 있기 때문에 퍼지 체크포인트와 더불어 핑퐁 체크포인트 방식을 함께 수행한다. 즉, backup 데이터베이스를 두 개로 관리함으로써, 체크포인트 과정에서의 부하를 줄일 수 있도록 하여, 트랜잭션의 동작에 최대한의 성능을 발휘할 수 있게 한다.
  • 저장 프로시저(stored procedure) : 알티베이스는 입력 인자, 출력 인자, 입출력 인자를 가지고 바디(body)내에 정의된 조건에 따라 여러 SQL문을 한 번에 수행하는 데이터베이스 프로시저를 제공한다. 저장 프로시저의 종류는 반환 값에 따라 프로시저와 함수로 나누어진다.
  • 데드락 감지(deadlock detection) : 데드락은 트랜잭션 간의 리소스 할당이 자율적으로 해제될 수 없는 비정상적인 트랜잭션 정지 상태이다. 일반적으로 데드락을 감지하는 별도의 쓰레드 또는 프로세스를 두게 되는데, 이러한 감지 구조는 필연적으로 서비스가 일시적으로 중단되는 사태를 불러온다. 알티베이스는 별도의 데드락 감지 쓰레드를 두지 않고, 데드락이 발생하는 순간 데드락 상황을 감지하여, 신속히 조처함으로써 어떤 상황에서도 서비스가 중지되는 상황을 방지하여, 지속적이고 안정적인 데이터베이스 운용을 보장한다.
  • 테이블 컴팩션 : 데이터베이스 운용 시 실제로 특정 메모리 테이블이 필요한 메모리 공간 이상을 차지하는 경우가 발생한다. 주로 많은 데이터가 삽입된 후 변경 및 삭제가 이루어지는 경우인데, 이런 경우 해당 테이블에서 필요 없는 메모리를 시스템으로 반환할 수 있다면, 보다 효율적으로 메모리 사용이 가능하다. 이런 필요로 인해 알티베이스는 메모리 테이블에 대해 테이블 단위의 compaction 기능을 제공하며, 이 기능을 이용하여 메모리와 테이블의 효율적으로 관리 할 수있게 해준다.
  • 데이터베이스 이중화 : 알티베이스는 시스템의 높은 가용성과 무정지 시스템을 위하여 로그 기반의 데이터베이스 이중화를 제공한다. 이 시스템 구조는 트랜잭션 로그를 기반으로 데이터베이스를 이중화시킴으로써, 알티베이스의 효율성을 높이고 시스템 부하를 감소시킬 수 있다. 서비스 중인 지역 시스템의 이중화 관리 쓰레드는 원격 시스템의 이중화 관리 쓰레드로 실시간으로 전달한다. 원격 시스템의 이중화 관리 쓰레드는 전달받은 로그 데이터를 분석하여 이것을 알티베이스 서버에게 전달하면 알티베이스 서버는 이 내용을 메인 메모리 데이터베이스에 반영한다. 이렇게 해서 시스템 복구 시간이 필요 없이 곧바로 서비스할 수 있는 체제를 갖추고 있다.
  • 클라이언트-서버 프로토콜 : 사용자는 응용 시스템의 구성에 적합한 클라이언트-서버 프로토콜을 선택하여 사용할 수 있다. 알티베이스가 제공하는 통신 프로토콜로는 TCP/IP, IPCUnix Domain socket이 있다.
  • 데이터베이스 공간 : 알티베이스는 데이터베이스의 모든 데이터를 모아 저장하는 하나 이상의 테이블 스페이스로 구성되고 테이블스페이스는 크게 메모리 공간과 디스크 공간으로 나누어진다. 메모리 영역의 테이블 스페이스는 그 쓰임새에 따라 시스템과 사용자용으로 구분되며, 디스크 영역의 테이블스페이스는 각각 용도에 따라 시스템(System)과 사용자(User)용, 그리고 DATA, UNDO, TEMPORARY 테이블스페이스로 종류를 구별한다.

활용

  • 네트워크 장비: 5G 통신 서비스 분야에서 UDR, PCF 등을 개발하는 네트워크 장비 기업에 DBMS 공급 했다. [2]
  • SMS 스팸 차단 시스템 : SMS 스팸 차단 시스템을 위해 오라클을 알티베이스로 대체하여 실시간으로 스팸을 탐지하고 차단할 수 있었다.
  • 정책 위탁 및 규칙 기능 서비스 : 알티베이스의 하이브리드 아키텍처를 활용했다.
  • 독점 트레이딩 데스크 : 알티베이스를 채택하여 많은 양의 주문을 실시간으로 처리 할 수 있었다.
  • 회계 처리 시스템 : 알티베이스로 대용량 데이터에 대한 높은 성능, 근무 시간 단축, 작업자 생산성 증가 및 지출 감소에 대한 요구를 해결했다.
  • 온라인 교역 시스템 : 많은 처리량을 위해 알티베이스를 채택하여 인 메모리 기능을 활용하고 있다.

평가

"알티베이스, 하이브리드 아키텍처는 최고 성능 평가" 알티베이스의 주력 제품은 'Altibase'이다. 이 제품은 기존 RDBMS와의 호환성을 높여 대용량의 데이터를 편리하게 관리할 수 있도록 개발됐다. 순수 국내 기술로만 설계된 세계 최초의 하이브리드(Hybrid) 아키텍처는 최고의 성능을 자랑한다. 주요 성능으로는 On-Disk RDBMS보다 DML(Data Manipulation Language)을 최소 5배이상 빠르게 처리할수있다.[3]

각주

  1. 순수한 소년, 〈(Altibase) 기본 설치 및 기동〉, 《티스토리》, 2015-01-15
  2. 안수민 기자, 〈(Altibase) 알티베이스, 5G 핵심 네트워크 장비에 DBMS 공급〉, 《전자신문》, 2019-04-29
  3. (2018년 해외에서 인정받은 국산 데이터관리SW) 알티베이스〉, 《아이티데일리》, 2018-12-14

참고 자료

같이 보기


  검수요청.png검수요청.png 이 알티베이스 문서는 데이터에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.