오라클

Oracle TimesTen In-Memory Database

빵순이^^ 2011. 3. 25. 11:00

이제,기업이 실시간으로 움직인다

Oracle TimesTen In-Memory Database

 

세계 최대의 기업용 소프트웨어 업체인 Oracle은 IT 전 분야의 솔루션을 망라하는 엔드 투 엔드 포트폴리오를 갖추고 있다. 이 중 Oracle TimesTen In-Memory Database(IMDB)는 IT의 큰 화두 중 하나인 실시간 기업 (RTE: Real Time Enterprise)에 대한 수요에 부응하기 위해 Oracle 이 제안하는 전략적 솔루션이다


 

1. Oracle TimesTen 개요


 

Oracle TimesTen은 무엇을 위한 솔루션인가?

 

3-tier 구조가 주를 이루고 있는 전통적인 IT 아키텍처는 다음 그림과 같이 프론트 엔드의 애플리케이션과 백 엔드 데이터베이스가 물리적으로 분리되고 Client/Server 방식으로 동작되는 구성이다. 즉, 모든 데이터 처리는 백 엔드의 데이터베이스가 전담하며, 애플리케이션은 그러한 데이터 처리 서비스를 네트워크 통신을 통하여 요청하고 응답을 받는 구조를 가진다.

 

 

실시간 기업이란 주요 비즈니스 이벤트에 대한 신속한 반응으로 규정되는데, 이를 위해서는 기업 네트워크를 흐르는 각종 데이터에 대한 실시간 처리가 필수적이다. 그러나 위와 같은 아키텍처는 (1)네트워크 통신 오버헤드, (2)백 엔드 데이 터베이스의 오버헤드라는 두 가지의 구조적인 bottleneck을 가지므로, 실시간 기업 구현에 뚜렷한 한계를 갖게 된다. 타임스텐은 다음과 같은 특징들을 통해 이 문제에 대한 아키텍처적 해법을 제시하고 있다.

 

·애플리케이션 단에 함께 배치되어 네트워크/IPC 오버헤드를 제거함으로써 프론트 엔드 애플리케이션의 성능 극대화

 

·메모리에 최적화된 경량(Lightweight)의 엔진을 통하여 실시간 데이터 처리를 위한 성능 보장

 

·표준 SQL을 통한RDBMS 인터페이스를 제공함으로써 데이터 관리 솔루션으로서의 일반성을 제공

 

 

그림과 같이 타임스텐은 백 엔드 데이터베이스에 저장된 데이터 중 성능에 핵심적인 일부 데이터를 애플리케이션 단에 캐쉬하는 방식으로 사용될 수 있으며, 이 경우 백 엔드의 Oracle 데이터베이스와의 연동은 자동적으로 이루어진다. 한 편 타임스텐은 Oracle 데이터베이스와 연동하지 않고, 단독으로 구성되어 사용 할 수도 있는데, 이 경우 임베디드 솔루션의 형태로 구현될 수 있다.

 

Oracle TimesTen의 역사 및 현황

 

1990년대에 HP Lab의 프로젝트에서 출발한 TimesTen은 1996년 연구소에서 독립하여 회사를 창립하였다. 그 후 2005년 6월 Oracle에 인수되기 전까지 매년 평균 40% 이상의 성장률을 보이며 1,500개 이상의 고객사를 확보하고, 125개 이상의 임베디드 솔루션(OEM/ISV)에 탑재된 명실상부한 세계 메모리 DB 시장 #1 자리를 차지하였다.

 

 

타임스텐은 통신, 금융, 국방, 공공, 제조, 유통 등 산업 전 분야에 걸쳐 즉각적인 응답 시간과 높은 처리량을 요구하는 실시간 환경이라면 어디든지 적용이 가능하며, 2009년 현재 그림과 같이 국내를 포함하여 전 세계적으로 실로 다양한 스펙트럼의 레퍼런스를 확보하고 있으며, 그 수는 수천에 달한다. 2009년 여름 신 버전의 출시를 눈앞에 두고 있는 지금 타임스텐의 다음 행보를 주목해야 할 것 이다.

 

Oracle TimesTen의 아키텍처

 

 

타임스텐의 아키텍처를 보여주는 앞의 그림에서 “In-Memory Data Store” 가 바로 타임스텐이 관리하는 메모리 데이터베이스에 해당한다. 모든 데이터는 메모리 위의 데이터 스토어에 상주하게 되며, SQL을 통한 데이터의 접근 및 처리는 모두 메모리 내에서 이루어진다.

 

동시에 타임스텐은 데이터의 안전성 및 무결성을 위하여 디스크 상에 일련의 파일 구조를 유지한다. 첫 번째는 체크포인트(checkpoint) 파일인데, 이는 메모리 위에 있는 데이터 스토어의 디스크 상 이미지에 해당한다. 애플리케이션에 의해 메모리 위의 데이터가 변경되면 그러한 변경사항은 주기적으로 체크포인트 파일에 자동 기록되므로 휘발성인 메모리 위의 데이터를 안전하게 보호할 수 있다. 또 한가지의 파일 구조는 트랜잭션 로그 파일이다. 이는 Oracle 데이터베이스의 redo 로그에 해당하는 기능을 수행함으로써 트랜잭션의 ACID 속성을 보장하여, 장애 발생시의 자동 복구를 지원한다.

 

이번에는 타임스텐의 아키텍처 중 가장 특징적인 부분인 접근 방식을 살펴 보자. 애플리케이션이 타임스텐을 접근하는 첫 번째 방법은 전통적인 Client/Server 모드이다. 이 경우 애플리케이션과 타임스텐은 네트워크 또는 IPC를 이용하여 통신을 하게 된다. 두 번째 방법은 Direct Access 모드라고 부르는데, 이는 애플 리케이션이 직접 타임스텐라이브러리를 호출하여 데이터 스토어가 위치한 공유 메모리를 마치 자기의 전용 메모리인 것처럼 직접 접근하도록 하는 방식을 의미한다. 이 경우 네트워크/IPC 부하가 완전히 제거됨으로써 접근성능을 극대화할 수 있다.

 

앞서 타임스텐이 제시하는 해법 중 하나로 “애플리케이션 단에 배치되어 네트워크/IPC 오버헤드를 제거함으로써 프론트 엔드 애플리케이션의 성능 극대화” 를 들었음을 상기하자. 만일 지원되는 접근 방식이 Client/Server 모드 뿐이라면 위의 해법은 가능하지 않다. 아무리 타임스텐을 애플리케이션과 같은 서버에 설치 하더라도 네트워크/IPC 통신을 제거하지는 못하기 때문이다. Direct Access 모드야말로 타 메모리 데이터베이스 제품들이 제공하지 못하는 타임스텐 만의 특화된 기술이다. 그리고 타임스텐이 그간 타 제품들에 비해 한결 빠른성능을 보여주었던 것을 가능하게 한 필수 요소라고 할 수 있다.

 

Oracle TimesTen의 성능

 

 

이 그림은 타임스텐과 전통적인 디스크 기반 데이터베이스 사이의 성능 비교를 보여주고있다. 타임스텐은 특히 조회업무에서 탁월한 성능과 확장성을 보여주고 있는데, 다음 그림을 보면 심지어 변경(update) 작업의 경우에도 최적의 상태로 튜닝된 디스크 기반 데이터베이스의 조회 성능보다도 약 2배의 성능 우위를 나타내고 있음을 알 수 있다.

 

 

여기서 타임스텐이 Oracle 데이터베이스와 같은 일반적인 디스크 기반 RDBMS보다 빠른 이유를 조금 더 자세히 살펴보자. 데이터가 모두 메모리에 상주하므로 I/O가 적기 때문이라는 것은 피상적 관찰에 불과하다. 사실 Oracle 데이터베이스에도 버퍼에 데이터를 상주시킬 수 있는 기능(Keep Buffer Pool)이 있기 때문이다. 그러한 경우에도 타임스텐은 월등한 성능을 보여주는데, 그 이유 는 첫째, 앞서 기술한 Direct Access 모드의 지원이며, 두 번째는 메모리 최적화이다. 메모리 최적화란 버퍼 캐쉬에 관련된 오버헤드의 제거를 의미한다. 디스크 기반 데이터베이스의 경우 버퍼 캐쉬에 대한 탐색은 데이터의 기본 주소인 디스크 상의 주소를 메모리 상의 버퍼 주소로 변환하는 복잡한 코드와 데이터 구조를 필요로 하는데, 이는 곧 보다 많은 CPU 사용으로 직결된다. 그리고 여기에 추가적으로 버퍼 캐쉬에 대한 LRU 알고리즘의 구사를 위한 오버헤드가 더해지는 것이다. 반면에 모든 데이터가 메모리 위에 상주하는 타임스텐의 경우 최적화된 코드 및 메모리 구조에 의해 이와 같은 오버헤드가 제거된 것이다.

 

고 가용성

 

고 가용성은 거의 모든 시스템에 필수적인 요소이다. 타임스텐이 기본적으로 제공하는 고 가용성 기능은 다음의 두 가지이다.

 

·체크포인트 파일과 트랜잭션 로그 파일을 이용하여 기본적인 안전성 및 데이터 무결성 을 제공함은 상술한 바와 같다.

 

·또한 일반적으로 공유 메모리를 사용하는 multi-thread application에서 하나의 thread가 비정상적으로 종료되면 공유 영역이 blocking되는 실효(invalidation)현상이 일어나게 된다. 하지만 타임스텐은 자체 개발한 "Micro-Logging" 기술을 사용함으로써, 이런 실효 현상에 대해 경쟁 제품과는 차별화된 매우 강력한 복원력을 제공한다.

 

여기에 더하여 타임스텐이 추가적으로 제공하는 고 가용성 기능으로 Replication이 있다. 이는 트랜잭션 로그 기반의 실시간 복제 메커니즘을 이용하며, 다양한 이중화 구성을 가능하게 한다. 타 메모리 DB 제품 역시 유사한 기능을 제공하지만, 타임스텐 Replication의 가장 큰 특장점은 그 유연성에 있다. 타임스텐을 이용하여 Replication 환경을 구성하는 경우 동기식/비동기식, 단방 향/쌍방향/N-way, 데이터 스토어 레벨/테이블 레벨 등의 다양한 옵션을 취사 선 택할 수 있다. 다음 그림은 타임스텐으로 구성할 수 있는 다양한 Replication 토폴로지를 보여준다.

 

 

Replication의 효용은 비단 이중화를 통한 고 가용성 뿐만이 아니다. 업무 설계 에 따라 확장성을 제공하는 부하 분산 환경으로 사용할 수도 있으며, 타임스텐 소프트웨어의 온라인 업그레이드 기능 또한 지원한다.

 

Oracle 데이터베이스와의 통합

 

백 엔드의 데이터베이스가 Oracle인가? 그렇다면 프론트 엔드 캐쉬에는 같은 Oracle이 제공하는 타임스텐이 가장 적합하다. Oracle 타임스텐은 기존에 Oracle 데이터베이스를 사용하는 고객이 쉽게 애플리케이션 단의 캐쉬를 구성 할 수 있도록 “Cache Connect to Oracle” 컴포넌트를 포함하고 있다.

 

 

타임스텐을 이용하여 성능에 핵심적인 주요 데이터를 애플리케이션 단에 캐쉬 하는 방법은 다음과 같다.

 

·캐쉬를 정의한다. 캐쉬는 개별 테이블 수준 또는 연관된 테이블들의 집합 수준으로 정의 할 수 있으며, 각 테이블에 대해 전체 뿐만 아니라 일부 행 내지 일부 컬럼에 대해서도 정 의할 수 있다. 이 모든 작업은 SQL 명령에 의해 이루어진다.

 

·캐쉬에 데이터를 적재한다. 데이터 적재는 캐쉬 대상 데이터 전체를 대상으로 명시적으로 이루어질 수 있는데, 개별 레코드 단위의 묵시적인 적재 또한 지원한다. 후자의 경우 타임스탬프 또는 LRU 알고리즘에 근거한 동적 aging 기법과 함께 사용되어 마치 Oracle 데이터베이스의 버퍼 캐쉬와 유사한 동적 캐쉬를 구성할 수 있도록 한다.

 

·캐쉬는 읽기 전용은 물론 읽기/쓰기로 사용할 수 있으며, Oracle 데이터베이스와 타임스텐캐쉬 사이의 데이터 동기화는 완전히 자동화된다.

 

이렇듯 Oracle 데이터베이스에 대해 가장 쉬운 방법으로 캐쉬를 구성하는 방법은 타임스텐을 사용하는 것이다. 타임스텐을 사용하면 타 제품을 사용하는 경우에 불가피한 추가적인 개발과 유지보수가 전혀 필요하지 않다. 타임스텐의 Cache Connect to Oracle 기능은 현재 Oracle 데이터베이스의 옵션인 “Inmemory Database Cache” 로 포지셔닝 되어 있다.

 

2. 새로운 버전의 Oracle TimesTen

 

타임스텐은 2005년 6월 오라클에 인수된 후 6.x, 7.x 의 메이저 버전을 거치면서 점차 오라클 데이터베이스의 장점들을 수용해 오고 있다. 타임스텐 7 버전에서 는 보다 많은 국가들의 언어를 지원하기 위해 57개의 문자세트(Character Set) 와 84개국의 언어정렬(Linguistic Sensitive Sorting) 기능을 흡수했고 VARCHAR2 , NCHAR , NVARCHAR2와 같은 오라클 데이터베이스의 데이터 구조를 도입하여 오라클 데이터베이스와의 데이터 호환성을 높였다. 2009년 중 순 새로 출시될 타임스텐은 어떤 오라클 데이터베이스 기능을 흡수하고 새로운 기능들이 추가 될 것인지 간단히 살펴보도록 하자.

 

Oracle Call Interface와 Pro*C 지원

 

Oracle Call Interface(이하 OCI)는 오라클 데이터베이스가 지원하는 전용 C API로 오라클 데이터베이스 버전 6(1998년)에 처음 소개된 기능이다. 이렇게 OCI는 10년 이상 발전되어 온 강력한 API로써 오라클 데이터베이스에 가장 안정적이고 완벽하게 접근할 수 있는 인터페이스이다. 따라서 OCI 위에서 구현된 다른 인터페이스들인 Pro*C/JDBC/OCCI/ODP.Net/PHP 등은 OCI의 장점을 이어받아 안정적으로 동작할 수 있게 된다. 새로 출시될 타임스텐도 OCI를 지원 할 예정이다. 즉 타임스텐이 OCI를 지원하게 되면서 기존의 OCI 위에서 포팅된 다양한 래퍼(wrapper) 인터페이스들도 자연스럽게 타임스텐 위에서 동작할 수 있는 기반이 된다. 이러한 이유로 타임스텐이 OCI를 지원하기로 결정한 것은 어 쩌면 당연한 순서일 것이다.

 

첫 번째로 얻은 수혜는 Pro*C 이다. 버전 7까지의 타임스텐은 JDBC, ODBC 등 표준 프로그래밍 인터페이스만을 지원해서 오라클 Pro*C에 익숙한 고객이나 개발자들에게 다가서기 쉽지 않았다. 하지만 이번에 출시될 타임스텐이 OCI를 지원하게 되면서 오라클 데이터베이스의 내장형(Embedded) SQL 컴파일러인 Pro*C도 자연스럽게 지원할 수 있게 되었다(Pro*C 컴파일러는 내장형 SQL 코드를 오라클 전용 인터페이스인 OCI 기반 코드로 번역해 준다). 기존의 오라클 데이터베이스 기반의 C/C++ 프로그램들이 대부분 Pro*C 되어 있다는 것을 생각하면 이는 매우 의미있는 것이다. Pro*C에 익숙한 오라클 고객과 개발자들이 새롭게 출시될 타임스텐을 이용하여 별도의 프로그래밍 교육이나 테스트 없이 메모리 DB에 최적화된 실시간 애플리케이션을 쉽게 작성할 수 있게 되었기 때문이다.

 

 

이 화면은 proc_bmt 라는 Pro*C 애플리케이션을 타임스텐과 오라클 데이터베이스에서 수행한 결과이다. 이렇게 하나의 Pro*C 애플리케이션이 tnsnames.ora 파일에 정의되어 있는 데이터베이스 연결 접속 이름(tt : 타임스텐에 연결, ttorcl : 오라클 데이터베이스에 연결)만 변경하여 타임스텐과 오라클 데이터베이스에 서 각각 실행될 수 있다. 이는 하나의 Pro*C 프로그램 내에서 타임스텐과 오라클 데이터베이스에 동시에 연결해서 데이터를 처리할 수 있다는 것을 의미하기 도 한다. 이 예제는 레코드 1,000건을 삽입하는 성능을 보여주는 것으로 타임스텐과 오라클 데이터베이스에서 실행된 결과를 각각 보여준다. 이렇게 하나의 애플리케이션이 타임스텐과 오라클 데이터베이스에 동시 또는 각각 접속하여 트랜잭션을 처리할 수 있게 되어서 다양한 응용이 가능해지고 애플리케이션의 활용성을 높일 수 있게 되었다.

 

PL/SQL 지원

 

PL/SQL(Procedural Language/Structured Query Language)은 오라클 데이터베이스에 내장되어 비즈니스 로직을 처리할 수 있는 SQL 기반의 절차형 프로그래밍 언어이다. PL/SQL은 오라클 데이터베이스에서 다수의 SQL문으로 구성 된 트랜잭션을 가장 빠르게 처리 할 수 있는 방법 중 하나로 직관적으로 쉽게 작성될 수 있어 오랫동안 많은 고객 업무 시스템에서 사용해 오고있다. 이렇듯 PL/SQL은 오라클 데이터베이스 만큼 널리 알려져 있기 때문에 이 기고에서 자세히 설명하지 않겠지만 PL/SQL이 새로 출시될 타임스텐 메모리 데이터베이스 에 탑재 될 예정이므로 이로 인해 얻을 수 있는 효과를 잠시 언급하고자 한다.

 

이미 타임스텐은 다이렉트 링크(Direct Link) 접속모드라는 기능이 있어 C나 Java로 구현된 응용프로그램을 마치 PL/SQL로 작성된 프로시저처럼 메모리 데이터베이스에 내장하여 성능을 극대화 할 수 있는 방법을 제공하고 있었다.

 

이 때문에 성능향상 차원에서 PL/SQL 도입효과가 미비하다고 생각할 수 있지만 이 다이렉트 링크 모드는 물리적으로 데이터베이스와 분리되어있는 클라이언트 응용프로그램에서는 사용할 수 없는 제약이 있다. 이런 제약으로 클라이언트 형 응용프로그램은 다이렉트 링크 응용프로그램 보다 상대적으로 낮은 성능을 갖게 되지만, PL/SQL 기능을 이용하면 타임스텐 데이터베이스와 클라이언트 응용프로그램 사이에서 데이터를 처리 할 때 발생하는 통신부담(Communication Roundtrip)을 줄일 수 있어 향상된 성능을 기대할 수 있다. 또한 Pro*C의 경우 와 마찬가지로 PL/SQL에 익숙한 개발자들은 쉽게 응용프로그램을 구현할 수 있고 기존에 오라클 데이터베이스에 구축되어 있던 PL/SQL기반 업무로직도 쉽게 타임스텐으로 이관할 수 있게 되었다.

 

Cache Grid 를 통한 인 메모리(In-Memory) 실시간 데이터 처리능력 확장 버전 7까지의 타임스텐은 “Cache Connect to Oracle” 또는 “IMDC(In- Memory DB Cache)” 라는 명칭으로 오라클 데이터베이스와의 데이터 연동기능을 지원해 왔다. 이 기능을 사용하면 추가적인 개발없이 간단한 설정으로 오라클 데이터베이스에 있는 데이터를 타임스텐에 캐시(cache)할 수 있다 따라서 응용프로그램은 타임스텐을 통해 빠른 응답속도와 높은 성능을 얻을 수 있고, 오라클 데이터베이스는 부하가 감소하게 되어 시스템 여유율을 확보하고 효율성을 증대하는 이점을 얻게 된다. 기존의 캐시 기능은 타임스텐 캐시 노드와 오라클 데이터베이스 간의 데이터 연동기능에 초점이 맞춰져 있다고 할 수 있는데 새로운 기능인 캐시 그리드(Cache Grid)는 두 대 이상의 타임스텐 노드들과 오라클 데이터베이스 사이, 즉 그리드에 참여하고 있는 모든 데이터베이스들 사이의 데이터 정합성을 보장해 주는 확장된 캐시 기능이라고 할 수 있다.

 

캐시 그리드에 참여하는 각각의 타임스텐 캐시 노드들을 그리드 멤버(Grid Member)라고 하고 그리드 멤버에 생성된 캐시 테이블 중 전체 데이터베이스 레벨에서 데이터 정합성을 보장해 주는 테이블을 글로벌 캐시 그룹(Global Cache Group) 이라고 한다. 다시 말해서 글로벌 캐시 그룹으로 생성된 테이블은 Select/Insert/Update/Delete 트랜잭션에 대해 모든 타임스텐 노드와 오라클 데이터베이스 사이에서 데이터 일관성(Data Consistency)을 보장 받게 된 다. 물론 글로벌 캐시 그룹 테이블 이외에 타임스텐 버전 7까지 지원해 오던 로컬 캐시 그룹 (Local Cache Group) 테이블 및 일반 테이블들도 생성할 수 있어 이 테이블들을 적절히 혼합하여 사용하면 데이터 정합성을 유지하고 부하가 증가함에 따라 확장할 수 있는 RDBMS 기반 그리드 응용프로그램들을 개발 할 수 있게 되었다.

 

기타 향상된 기능들

 

A. 오라클 클러스터웨어(Oracle Clusterware) 연동 지원

오라클 클러스터웨어는 고가용(High Availability) 서비스를 위해 시스템과 애플리케이션을 모니터링하여 장애가 발생할 경우 이를 자동 감지하고 정해진 절차에 따라서 장애이관(Failover) 및 복구(Recovery)를 자동화하여 서비스가 지속될 수 있도록 해주는 소프트웨어다. 새 버전의 타임스텐은 오라클 클러스터웨어와 연동할 수 있는 명령어 집합 및 예제를 제공하고, 오라클 클러스터웨어 를 통해서 타임스텐 관련 프로세스들과 응용프로그램의 가용성을 높일 수 있게 되었다.

 

B. Automatic Client Connection Failover

ODBC/JDBC 로 구현된 클라이언트 애플리케이션은 이중화된 타임스텐에 접속 할 때 Active/Standby 데이터베이스 접속정보를 동시에 유지할 수 있게 되었다. 이를 통해 클라이언트 애플리케이션은 Active 데이터베이스에 장애가 발생 하여 접속이 불가능 할 때 자동으로 Standby 데이터베이스로 접속할 수 있다.

 

C. Bitmap Index

일반적으로 분포도가 낮은 컬럼에 비트맵 인덱스를 생성하면 동등조건, 범위조건 등에 관계없이 높은 검색성능을 일정하게 발휘할 수 있다. 이는 인덱스를 참조할 때 인덱스 트리(tree)를 스캔하는 것이 아니라 비트연산으로 처리되기 때 문이다. 최근 실시간 기업환경 도입의 추세로 대용량 메모리 데이터베이스를 구축하여 빠른 통계처리를 시도하는 요청이 늘어나고 있는데 비트맵 인덱스는 이 때 효과적으로 사용할 수 있는 기능으로 Group by, Distinct, Order by, Count() 등과 같은 구절을 사용하는 조회문의 성능을 높이는데 효과적이다.

 

D. 복제(Replication) 성능 향상

점차 대용량 메모리를 탑재한 서버의 가격이 떨어지면서 자연스럽게 대용량 메모리 데이터베이스의 구축이 늘어나고 있다. 메모리 데이터베이스의 크기가 커지기 시작하면서 이미지, 사진과 같은 바이너리(binary) 데이터들도 메모리 데이 터베이스에서 빠르게 처리하고 싶은 요구가 증대되고 있는데 이 경우 문제가 되는 것은 데이터베이스 복제를 통한 이중화이다. 기존 타임스텐은 컬럼(column) 크기가 256 Kbyte 이상인 경우 복제기능을 사용할 수 없었는데 새 버전의 타임 스텐은 이 한계를 4Gbyte까지 늘려서 대용량 컬럼(column)이 있는 레코드를 복제 환경에서도 신속하게 처리할 수 있게 하였다. 이는 기존의 복제 메커니즘을 개선하여 타임스텐 간의 데이터 복제 성능이 높아졌다는 것을 의미하기도 한다.

 

E. 데이터베이스 이관작업 성능 개선

앞서 말한 대용량 메모리 데이터베이스의 요구가 증대되면서 수십~수백 기가바이트의 메모리 데이터베이스를 이관하는 작업이 필요하게 되었다. 대용량 메모리 데이터베이스를 이관하는 작업은 많은 시간이 필요하기 때문에 최신버전의 타임스텐에서는 데이터베이스의 이관 작업에 사용하는 툴인 “ttMigrate” 에 병렬처리 기능(최대 64개 쓰레드로 처리 가능)을 추가하여 이관작업의 성능을 개선하였다.

 

F. 오라클 기반 응용프로그램 마이그레이션(migration) 지원

새 버전의 타임스텐에서는 OCI(Pro*C) 와 PLSQL을 지원하게 되어 일부 오라클 기반의 응용프로그램을 타임스텐으로 쉽게 이전하여 성능을 개선할 수 있게 되었다. 이 경우 타임스텐은 오라클 데이터베이스에서 지원하는 모든 기능을 지원 하지 않기 때문에 응용프로그램 이전 시 호환성 여부를 검사하는 도구가 필요하다. 이에 대한 해결책으로 “ttSrcScan” 이란 도구를 타임스텐과 별도로 제공하는 데 ttSrcScan 은 텍스트 명령어 기반 도구로 .c, .cpp, .h, .sql 등의 확장자로 된 오라클 기반 응용프로그램 소스 파일들을 입력 받아 타임스텐과의 호환성 여부 를 검사해 준다.

 

 




고객 사례 1 : KTF

 

온라인에서의 실시간 인증 처리

 

오늘날 온라인 서비스는 정적인 유선 환경뿐만 아니라, 모바일 서비스 등을 통한 무선 환경 역시 보편화되었다. 인터넷 환경이 생활의 주요한 요소가 되었으며, 이에 서비스 제공자는 급증하는 사용자의 요구를 안정적으로 제공하기 위해 효율적인 인프라 구성에 많은 노력을 기울이고 있다. 300만 이상의 WCDMA 가입자를 확보하고 있는 KTF의 “실시간 통합 인증 시스템 구축” 사례는 이러한 맥락 하에 TimesTen IMDB를 도입한 대표적인 성공 사례이다.

 

이 프로젝트의 추진 배경은 크게 두 가지였다.

 

·기존에 분산되어 있던 인증 인프라를 통합함으로써 컨버전스 환경에 대응하고, 향후 서 비스 채널 확대를 대비한 확장성 있는 인증 체계 구축

 

·동시에 수용 가능 트래픽을 대폭 향상하여 서비스 급증에 따른 인증 과부하로 발생할 수 있는 서비스 지연 및 장애를 극복할 수 있는 고성능, 고 가용성 인증 시스템 구축

솔루션으로는 IMDB 뿐만 아니라 다른 몇 가지의 방안이 함께 고려되었다.

 

 

그림과 같이 LDAP, IMDB, Disk DB에 대한 비교 분석이 이루어졌으며, 성능은 물론 안정 성과 개발/관리 측면을 모두 고 려하여 IMDB가 채택되었다. 특히 기존 운영 데이터베이스로써 Oracle10g의 4 Node RAC를 이용하고 있기에, 이와 최적의 유기적 연동 기능을 제공하여 구축 개발 및 운영이 용이한 Oracle의 IMDB인 TimesTen을 최종 적용하게 된 것이다.

 

 

시스템의 구성은 그림과 같다. 애플리케이션 서버에 포진된 TimesTen 읽기 전용 캐쉬를 이용하여 인증 서비스를 제공하며, 백 엔드의 Oracle 데이터베이스에서는 데이터의 가공을 담당한다. 변경된 데이터가 자동으로 캐쉬에 반영됨은 물론이다.

 

가용성은 다중으로 설계되었다. 우선 2대의 TimesTen 캐쉬를 Replication으로 구성함으로써 1차적인 고 가용성을 확보하였다. 만일 모든 TimesTen 캐쉬에 장애가 발생하는 비상 사태가 발생한다면 백 엔드의 Oracle 데이터베이스가 대신 서비스를 제공하게 된다. 게다가 Oracle 데이터베이스는 RAC로 구성되어 있다. 한편 개발 단계에 들어간 이래 운영되고 있는 지금까지 TimesTen의 장애는 한 번도 없었음을 첨언한다.

 

가장 중요한 속도 측면을 살펴보면, 일단 응답 속도가 평균 0.1ms 정도로 낮아져 기존 인증 성능 대비 약 10배 이상으로 매우 높게 향상되었다. 처리량 측면에서 살펴본다면, 구축 단계에서 가산치까지 적용하여 설정한 목표는 일일 최대 8천만 건 처리였다. 그러나 TimesTen 적용 결과 10배가 넘는 일일 최대 8억 6 천만건을 처리할 수 있음이 검증되었다.

 

이와 같이 Oracle TimesTen IMDB로 구축된 KTF의 통합 인증 시스템은 2008년 9월에 세계적인 통신전문지인 글로벌 텔레콤 비즈니스 매거진(Global Telecoms Business magazine)이 통신 산업 분야별 최고의 혁신 기업을 선정 하는 'The GTB Innovation Awards'에서 비즈니스 서비스 혁신 부문 리더로 선정되었다.

 

고객 사례 2 : 네이블커뮤니케이션즈 SBC(Session Border Controller: nXer™ SBC)

 

VoIP 구성의 필수요소 - SBC

 

인터넷 전화의 네트워크 환경은 인터넷을 통한 다양한 형태의 네트워크 공격들 을 막아내야 하기 때문에 여러 기능과 형태의 네트워크 보안 장치들이 더해지고 있다. 이런 네트워크 공격의 예를 들면 일반 인터넷의 보안위협과 마찬가지로 동시 다발적으로 다량의 메시지를 인터넷전화 호처리 시스템에 발송해 성능의 저하를 유도하는 서비스 거부 공격(Dos : Denial of Service)과 서버해킹을 먼 저 꼽을 수 있다. 이에 대한 해결책으로 정상적인 인터넷전화 트래픽과 비정상 트래픽을 분리해 주는 장비를 도입함으로써 보안 위협을 사전에 차단하고 안정적인 인터넷전화 호처리 서비스를 계속 처리할 수 있게 해야 한다.

 

SBC(Session Border Controller)란 이러한 기능을 제공해 주는 인터넷 전화망에서 반드시 필요한 통신 장비로써 허용되지 않은 IP 트래픽이 외부로 유출되거나 외부로부터 유입되는 것을 통제하기 위하여 사용되는 VoIP 호 처리 및 보안 장비이다. 최근 경제성이 높은 인터넷 전화가 확산되면서 SBC와 같은 인터넷전화망에 필요한 보안/호처리 장비들의 수요가 대폭 늘어나고 있는데 얼마 전까지 만 해도 대용량 처리가 가능한 SBC는 외산제품에 의존하고 있으나 작년 국내 차세대 통신 솔루션 전문 벤더인 네이블커뮤니케이션즈에서 대용량 SBC 상용화에 성공했다.

 

<통신망에서 SBC 네트워크 구성도>

 

네이블커뮤니케이션즈에서 상용화한 nXer™ SBC는 KT, LG데이콤 , SK브로드밴드 등과 같은 인터넷전화 기간통신사업자(ITSP : Internet Telephony Service Provider)에서 요구하는 Carrier-Grade 수준의 대용량 서비스 처리가 가능하고 ITSP들의 다양한 네트워크 환경에서도 인터넷전화 서비스가 원활하게 제공될 수 있도록 지원한다. 그리고 NAT/Firewall Traversal Function과 IP-Telephony 서비스 제공 장치를 외부 네트워크 공격으로부터 보호할 수 있는 VoIP 보안 기능도 함께 제공해 ITSP는 nXer™ SBC를 통해 인터넷 전화 가입자들에게 안전한 서비스를 제공할 수 있다.

 

Carrier-Grade SBC로 진화

 

이와 같이 인터넷 전화망에서 중요한 역할을 하고 있는 SBC는 인터넷 전화 통화가 폭주하는 경우에도 신속하고 안정적인 기능 제공이 무엇보다도 중요하다. 특히 인터넷전화 기간통신사업자를 위한 Carrier-Grade 급 대용량 SBC는 일정 수준의 SLA(Service Level Agreement)를 만족하기 위해 빠른 데이터처리가 필수적이다. 예를 들어 NAT Traversal을 하기 위해 추가적으로 발생하는 Signaling 및 Media Stream을 고속으로 처리해야 하며, 수 많은 단말의 정보와 Dialog 정보를 실시간으로 저장해야 하기 때문에 실시간 데이터 처리가 가능한 데이터베이스는 Carrier-Grade SBC에 중요한 구성 요소이다.

 

네이블커뮤니케이션즈의 nXer-SBC는 “off-the-shelf” 형태의 서버를 사용하여 소형에서 Enterpise, Carrier급으로 진화를 거듭해왔는데 기간통신사용자의 서비스 요구수준을 만족시키는 것은 상당한 노력이 필요한 부분이었으며 다음과 같은 조건을 만족하는 실시간 데이터베이스가 필요하였다.

 

·대용량 가입자를 수용할 수 있으면서도 고속의 대용량 호 처리를 위한 마이크로 세컨드 (microsecond) 단위의 데이터 처리 응답속도

 

·실 시간성과 고 가용성이 모두 중요한 장비로 고속의 데이터 복제(Replication)를 수행 하면서도 데이터베이스 성능저하가 최소화 되어야 함

 

·데이터베이스의 백업과 복구 및 기타 제반 관리가 간단하고 장애 시 신속한 복구 능력 필요

 

네이블커뮤니케이션즈는 Carrier-Grade에 맞는 빠르고 안정적인 새로운 데이터베이스를 벤치마크 하던 중 해외의 유명 VOIP솔루션 업체에서 오라클 타임스텐을 내장(Embedding)하여 사용하고 있는 것에 힌트를 얻어 오라클 타임스텐 데이터베이스에 대한 성능테스트를 진행하게 되었다. 테스트 결과 만족스러운 성능과 안정성을 얻게 되었는데 성능테스트를 진행했던 네이블커뮤니케이션즈의 박성우 책임연구원은 테스트 당시 소감을 이렇게 밝혔다.

 

“타임스텐의 다이렉트 링크 접속 (Direct Linked Connection) 기능을 이용 한 응용프로그램의 성능은 매우 만족스러웠고 기존에 적용했던 어떠한 데이터베이스 보다 빠른 결과를 보여 주었다. 오라클 타임스텐의 빠른 트랜잭션 처리 능력은 대용량 호 처리와 시스템 복구에서 특히 빛이났다. 타임스텐을 처음 적용한 후에 테스트를 할 때 정말 타임스텐 데이터베이스를 사용하고 있었는지 의심이 들 정도로 데이터가 신속히 처리되었고 그 결과 계측기를 통해서 나타나는 모든 수치가 향상되었으며 특히 평균 호 연결 시간의 향상은 정말 놀라웠다. 관리하는 단말의 수가 늘어남에 따라 발생하는 성능 저하는 사라졌고 더 많은 호를 연결시킬 수 있었으며 시스템 장애 이관(Fail-over)시 필요한 복구시간(Recovery Time)이 극단적으 로 빨라졌다. 또한 동시 호 처리 및 최대 수용 가입자를 50% 이상 추가로 수용할 수 있었기 때문에 고객의 요구에 탄력적으로 대응할 수 있으면서도 증가된 트래픽 상황에서도 안정적인 동작을 보장 받을 수 있었다.”

 

이렇게 nXer-SBC는 네이블커뮤니케이션의 전문 통신기술과 오라클 타임스텐의 안정적이고 빠른 데이터처리 기술을 접목하여 대용량 처리가 가능한 경쟁력 있는 솔루션으로 업그레이드 되었고 그 결과를 인정받고 있다. 또한 네이블커뮤니케이션즈는 국내의 선진 통신 솔루션 공급 및 경험을 토대로 해외 사업진출을 강화하고 있는데 글로벌 인지도가 높은 오라클 타임스텐의 탑재로 해외 통신 시장에서 제품의 신뢰성과 경쟁력을 확보하는 토대를 마련하게 되었다.

 

 

<필자소개>

 

홍영훈 수석 세일즈 컨설턴트, 한국오라클 Embedded business unit

이상윤 수석 컨설턴트, 한국오라클 TSC DB기술팀

 

출처 : 한국 오라클 

'오라클' 카테고리의 다른 글

Oracle 권한 및 가능한 작업  (0) 2011.05.25