Real-Time Data Management for Performance Critical Applications Oracle TimesTen 소개 엄진우 (jinwoo.eom@oracle.com) 수석컨설턴트 Technical Solution Consulting 한국오라클주식회사 2007 년 01 월 30 일
2 Agenda TimesTen의소개 TimesTen 제품기능과옵션 TimesTen과 Oracle Database 의비교및연동 TimesTen의적용범위 TimesTen 도입사례 TimesTen 7.0 신기능소개
TimesTen 의소개 3
Oracle In-Memory Database TimesTen 의특장점 전세계 1500이상기업에서사용중인검증된제품 Disk I/O 발생을최소화한 Transaction 안정성 간편한 Replication 설정및운영 성능저하및 Data 정합성을고려한 Replication Direct Link 연동으로 Memory DB의성능 (TPS) 극대화 Oracle DBMS(RAC 포함 ) 와유연한통합및확장성 - Cache Connect 옵션 간편한운영및관리 Memory 및 Disk Size 산정 4
5 기본제품및옵션 TimesTen In-Memory Database 리얼타임 데이타베이스 시스템 이용용도 네트워크장치 부가가치서비스 Embedded 시스템 옵션 :Replication Times Ten간의 replication 이용용도 핫스탠바이 분산 replication 옵션 :Cache Connect to Oracle 리얼타임 데이터 캐싱 Oracle의캐쉬로서 Times Ten를사용 이용용도 Middle Tier 데이터캐쉬 운영데이타저장소 엔터프라이즈어플리케이션의고속화 Transaction Logging Application TimesTen Checkpoint files Cache Group Replication Cache Connect to Oracle Oracle DB Oracle Database Application TimesTen Cache Group Transaction Logging Checkpoint files
TimesTen 제품기능과옵션 6
7 TimesTen 의기능 고성능 초당수만 ~ 수십만의 SQL 를처리하는성능 데이터보증 / 복구 트랜잭션로그 replication 표준 RDBMS / SQL 데이터모델 SQL-92, JDBC,ODBC API 로부터의액세스 트랜잭션 로그 API(XLA) 에의한고속이벤트통지 XA / JTA 분산트랙잭션 Oracle DB 의캐쉬로서기능 행레벨 락 읽기포함 / 쓰기의동시실행가능한 Read Commit Small Footprint ( 6MB ) Presentation layer Middle Tier 어플리케이션어플리케이션데이타베이스층
간편한운영및관리 간편한 SQL 성능튜닝기법제공 - Cost base optimizer 기반튜닝 ( 통계생성통한튜닝작업최소화 ) - Hash Index / T-tree index 지원 Database Connection 통한 Database 생성및 Startup - 응용프로그램이 Database 접속시 Database 가존재하지않을경우자동으로 Database를생성하고 Startup 하는구조이는 database 관리를매우간편하게함. Ex) 단일명령으로 Database creation/duplication/recovery 가능 - 단일엔진으로 multi-database 생성가능 Database 관리를위한다양한 API 제공 - TimesTen의운영및관리의간편하기때문에응용프로그램에서도간단한코드로관리및운영을구현하여자동화가능 => 최적의 ISV solution 용 Memory Database : No DBA Oracle Enterprise Manager Grid Control 로통합관리예정 8
TimesTen 의옵션 : Replication 9
Replication 트랙잭션 로그 베이스 Disk Logging 또는 Diskless Logging 이필요 TCP/IP 스트림 소켓을통해서 replication 에이전트가갱신정보를송수신 동기 / 비동기모드를동적으로변경가능 타임스탬프기반의데이타경합해결 10
Replication - TimesTen to TimesTen 11 고속성과신뢰성 로그 베이스 비동기 / 동기방식의동적전환가능 다양한 replication 구성 멀티마스터 계층 단방향 분할작업의 Workload 분산작업의 Workload
Replication 방식 비동기 replication 수신측에의존하지않는다 속도 동기 replication Return Receipt replication 동기화할수없는상황을감지가능 Return TwoSafe replication 완전한동기화를보증 영속성 12
13 비동기 replication 1. COMMIT 발행 송신측 수신측 어플리케이션데이터 스토어로그 버퍼 2. 완료 4. 배치작성 5. 수신측에송신 3. 로그 파일에기록 Rep. Agent 로그 파일 10. 송신이끝난로그를북마크 6&9. 송신측에 Receipt 답신 ( 이전의적용상황도포함 ) 어플리케이션 7. 데이터스토어에적용 Rep. Agent 데이터 스토어 로그 버퍼 8. 로그 파일에기록 로그 파일
14 Return Receipt replication ( 동기 ) 1. COMMIT 발행 송신측 수신측 어플리케이션데이터 스토어로그 버퍼 6. 완료 3. 배치취득 4. 수신측에송신 2. 로그 파일에기록 Rep. Agent 8. 완료 로그 파일 9. 송신이끝난로그를북마크 5. 송신측에 Receipt 답신 어플리케이션 6. 데이터스토어에적용 Rep. Agent 데이터 스토어 로그 버퍼 7. 로그 파일에기록 로그 파일
15 Return TwoSafe replication ( 동기 ) 1. COMMIT 발행 송신측 수신측 어플리케이션데이터 스토어로그 버퍼 7. 완료 3. 배치취득 4. 수신측에송신 2. 로그 파일에기록 Rep. Agent 6. 완료 로그 파일 8. 송신이끝난로그를북마크 어플리케이션 4. 데이터스토어에적용 Rep. Agent 데이터 스토어 로그 버퍼 5. 로그 파일에기록 로그 파일
TimesTen 옵션 : Cache Connect to Oracle 16
Cache Connect to Oracle 의특징 응용계층의 TimesTen 상에 Oracle Database 의데이터를캐쉬 Table 전체 / Table 일부의캐쉬 Oracle Database 로부터 TimesTen 에복사 (Refresh) TimesTen 로부터 Oracle Database 에동기 / 비동기에전파 (Flush) 읽기전용 / 갱신가능캐쉬 그룹 TimesTen 에접속만으로양쪽데이타베이스의선택 / 갱신이가능한 PassThrough 기능 캐쉬 인스턴스의에이징 Client Application + TimesTen Oracle 17
Oracle DB(RAC) 와유연한통합및확장성 (Cache Connect) 18 오라클 DB 의 RAC 와 TimesTen 의 Cache Connect 간에장애극복타사는세션을인위적으로변경을하던가별도모듈을개발필요 TimesTen Node 1 Replication TimesTen Node 2 TimesTen Node 1 Replication TimesTen Node 2 Cache Connect Cache Connect Cache Connect Cache Connect Oracle RAC1 Oracle RAC2 Oracle RAC1 Oracle RAC2 RAC(Real Application Cluster) RAC(Real Application Cluster)
TimesTen 과 Oracle Database 의비교및연동 19
20 아키텍쳐비교 디스크베이스 RDBMS TimesTen 어플리케이션 어플리케이션 프로그램 어플리케이션 ODBC/ 네이티브 API connection 오버헤드 (IPC/ 네트워크 ) ODBC API TimesTen DBMS 엔진 Oracle 버퍼관리의오버헤드 다수의백그라운드프로세스가기동 AP 와 DB 간의메모리공간을공유 어플리케이션에내장가능 (10 MB) 메모리에최적화된레이아웃 데이터보증과복구에디스크를이용 데이타베이스 데이터를프라이빗버퍼에카피해사용 디스크 I/O 오버헤드
21 TimesTen 의이용형태 클라이언트 서버 액세스 네트워크경유로액세스 유연하게어플리케이션을배치 Times Ten Sever TimesTen 라이브러리 어플리케이션 TimesTen 라이브러리 어플리케이션 TimesTen 라이브러리 어플리케이션 TimesTen 클라이언트 네트워크 인메모리 데이타베이스 다이렉트 접속 액세스 고속데이터액세스 어플리케이션으로부터, 공유메모리에직접액세스 데이터획득을위한네트워크통신없음 트랜잭션로그 클라이언트 체크포인트 파일 어플리케이션 플랫폼
22 응답시간의비교 OSDL(Open Source Development Labs) Carrier Grade Linux Group 채용벤치마크 Oracle 3 층구조 어플리케이션층에벤치마크프로그램사용 presentation layer 벤치마크 프로그램 Oracle 10g 벤치마크 프로그램 Oracle 10g Oracle + TimesTen 벤치마크프로그램에 TimesTen 6.0 을링크 TimesTen 상의데이터를갱신
응답시간의비교 8000 6000 4000 4496 Oracle Oracle + TimesTen 4866 7901 4297 2000 0 456 484 600 83 16 32 35 81 50 38 23 마이크로세컨드 DelColFor GetAccData GetBasData GetNewDest InsCallFor UpdSubData UpdateLoc
24 응답시간성능 단순한검색처리의응답시간평균갱신처리의응답시간 평균 9마이크로세컨드평균 28 마이크로세컨드 ( 마이크로세컨드 = 1 초의 100 만분의 1) 30 28 마이크로세컨드 20 10 마이크로세컨드 9 마이크로세컨드 0 update select 70% select; 20% update; 10% insert Oracle TimesTen R 6.0, 4-CPU, 3 GHz x86 Xeon, 32-bit Red Hat Linux
Throughput 1 초당처리건수 4 CPU 서버로, 1초당 25 만건 7만건 만건의검색만건의갱신트랜잭션 (transaction) 를실현 300,000 250,000 200,000 150,000 100,000 50,000 0 32,663 1 CPU 2 CPUs 4 CPUs 53,361 70,111 54,303 90,793 121,705 98,568 169,437 update mixed select 250,550 70% select; 20% update; 10% insert Oracle TimesTen R6.0, 4-CPU, 3 GHz x86 Xeon, 32-bit Red Hat Linux
26 TimesTen 과 Oracle Database 의차이 Oracle Database TimesTen 데이터 모델 RDBMS / SQL RDBMS / SQL 최적화 데프로이처 디스크 데이타베이스층 메모리 응용계층 아키텍쳐 C/S 다이렉트 액세스 데이터용량수십 TB 수십 GB 리스폰스시간 밀리세컨드 마이크로세컨드 대상어플리케이션모두 OLTP
27 Oracle 제품과의연계방법 Real Application Clusters (RAC) RAC 는확장성과가용성 TimesTen 는응답시간 Throughput 이최대화하는 RAC + TimesTen Client Application + TimesTen Oracle
Oracle 제품과의연계방법 Oracle Application Server Web Cache Web Cache 는 HTML등의어플리케이션층의캐쉬 TimesTen은데이타베이스층의캐쉬 응답시간을최소화하는 Web Cache + TimesTen Client Web Cache Application + TimesTen Oracle 28
TimesTen 의적용범위 29
30 리얼타임 시스템 의실현 Real-Time 인프라스트럭쳐 소프트웨어 실시간응답높은확장성연속가용성 TimesTen 는, Critical 퍼포먼스요건을가지는어플리케이션에대해, 이벤트 트랜잭션 그리고데이터 매니지먼트매니지먼트를위한 Real-Time 인프라스트럭쳐 소프트웨어를제공합니다. Times Ten를이용하고있는 Real-Time 어플리케이션 & 시스템 증권거래시스템 항공노선 오퍼레이션 실시간 빌링 모바일Push-To-Talk 비즈니스 액티버티감시 수익성의보증 비즈니스 프로세스관리 엔터프라이즈 콜 센터 콜 라우팅 부정액세스검출 마켓 데이터전달 비즈니스최적화
31 TimesTen 에최적인시스템 OLTP 업무에데이타베이스 로직이상대적으로많은시스템 5 80 데이타베이스 Oracle: 85 ms 중 80 ms 가 DB 로직 5 5 Oracle + TimesTen: 10 ms 중 5 ms 가 DB 로직 TimesTen 추가 88%OFF 80 80 어플리케이션 데이타베이스 Oracle: 160 ms 중 80 ms 가 DB 로직 80 5 TimesTen 추가 어플리케이션 Oracle + TimesTen: 85 ms 중 5 ms 가 DB 로직 47%OFF
참조데이터의캐쉬 빈번히이용되는데이터를읽기전용캐쉬로사용해, 네트워크의부하경감 EC사이트에서의제품카탈로그검색 SCM 시스템으로의제품마스터 항공권예약페이지의비행 스케줄 갱신은 PassThrough 초기로드 Application Server Oracle 32
액티브 데이터의캐쉬 액티브고객 / 프리미엄고객을갱신가능캐쉬로, 특정유저에게의대응을스피드 업 콜 센터에서고객문의 개인화 사이트용의고객프로파일 CRM 시스템에서액티브 유저정보 액티브하지않게되면에이지 아웃 요구가있으면로드 Application Server Oracle 33
리얼타임 트랜잭션처리 메세지 / 트랜잭션를실시간으로처리해, 이력데이터를 Oracle Database 에보존 증권거래의시장데이터 휴대전화서비스의이용자데이터 RFID 데이터를수집 / 전송 이력 Application Server 외부데이터의취득 Oracle 34
TimesTen 도입사례 35
36 고객사례 증권업계 / 텔레콤을중심으로한 1,500 사이상의이용고객 증권업계 텔레콤 네트워크 E 커머스 오더 매칭 리얼타임과금 서비스인증 SOA 리스크관리 콜처리 수익보증 콜 센터 리얼타임분석 부가가치서비스 네트워크 QoS 관리 Business Intelligence
37 전세계 1500 이상기업에서사용중인검증된제품 ( 국내사례 ) (B 증권사 HTS System) 현물, 선물 / 옵션트레이딩시스템현행및요구사항 기존시스템 (ISAM) 성능향상 고가용성불안정 폭주시응답속도불안 구성환경 2 CPU * 2 System (for Replication) HP rp7410 C - applications (ODBC) 약 8 GB DataStore 기대목표 빠른시세정보 / 주문내역조회서비스제공으로경쟁력있는트레이딩서비스제공 기존 DDBMS 대비비용절감 완벽한실시간이중화및장애요인 (H/W Disk) 감소 near-zero administration 비교내역 TimesTen A 사 DML 속도 Query 속도 안정성 예 ) : 우수 : 양호 : 보통 A 출처 : UnionI&C TimesTen Memory DB 의경우 2 가지방법으로운영가능 Oracle 과의연동편리 Trading 및계정계적용시 100% 가용성보장 DurableCommits Mode 일경우 100% Data 가용성보장 예 ) : 우수 : 양호 : 보통
38 금융시장 : 전자상거래 국제적금융거래회사 TimesTen 의사용목적 이벤트취득거래주문 주문처리거래인당 이벤트발행투자가에게의통지 / 약정처리 퍼포먼스지표 초간 3001,000 주문 시스템구성 4 CPU 서버 2 대 (+ 핫 스탠바이 ) Sun Solaris C++ 어플리케이션 2 GB 의데이터 스토어 TimesTen 의가치 고기능의주문수발주 고속의주문처리 투자가에게의통지 기관투자가 시장데이터거래주문주문변경주문조회 거래소 주문처리주문수발주 성립주문 그외의거래회사 거래성립스테이터스주문수발주 Oracle 개인투자가 통지 Position keeping 개인용거래
39 텔레콤 : 리얼타임과금 유럽대기업휴대통신캐리어 TimesTen 의사용목적 이벤트취득액티브한선불세션볼륨 스테이터스 참조데이터 룩업볼륨 / 컨텐츠과금 잔고관리선불인증 / 과금 퍼포먼스지표 선불인증으로 10 ms 이하의응답시간 읽어 / 쓰기 = 70 : 30 시스템구성 8 CPU 서버 (+ 핫 스탠바이 ) 볼륨할인 선불 I/N 컨텐츠과금 HP Tru64 수 GB 의데이터 스토어 TimesTen 의가치 리얼타임의볼륨할인적용 리얼타임의컨텐츠과금 민생품인것 청구서배치 Oracle
40 엔터프라이즈 : 유저정보취득 / 인증 CRM ASP 벤더 TimesTen 의사용목적 유저정보의캐쉬 퍼포먼스지표 1 만 4,000 회사 -20 만명이상의이용자 1 일 1,000 만리퀘스트 초당최대 250 리퀘스트 시스템구성 4 CPU 서버 2 대 (+ 핫 스탠바이 ) RedHat on Sun Opteron Java 어플리케이션 2 GB 의데이터 스토어 TimesTen 의가치 네트워크의부하경감 응답시간의단축 중요고객에게의프리미엄 AS for NA Internet EMEA / APAC Oracle Oracle
41 그외다른이용방법 티켓발권사이트의좌석예약 피크분산용의 FIFO 버퍼 실시간정보전용의 BI리포지터리 복수데이터 소스를위한통합포인트 SOA의메세지 큐 온라인 게임 리얼타임감시시스템 제철소 / 화학플랜트등의공업용로봇의제휴 항공기 / 열차 / 자동차
TimesTen 7.0 신기능소개 42
43 Automatic Data Aging Data Aging 은오래된데이터를자동적으로지우는 ( 또는 Oracle Database 에자동적으로기록 ) 기능 6.0 까지는시간기준으로오래된데이터를 Oracle Database 에기록 7.0 에서는시간기준또는 LRU 기준으로 Aging 를실시할수있슴 TimesTen A B C D 사용되지않은데이터를캐쉬아웃 이기능으로한정된메모리 자원을유용하게사용할수있게되어, 슬라이드 윈도우를간단하게구현 Oracle Database
44 Automatic Load on SELECT Cache Connect 기능의일부로제공되어어플리케이션이 TimesTen 에 SELECT 했을때에데이터가없는경우, Oracle Database 로부터자동적으로 TimesTen 가데이터를로드해오는기능 Paththrough 와는달리, 데이터는그이후 TimesTen 에상주하므로, 2 번째이후의 SELECT 는고속화 Automatic Data Aging 의기능을조합하는것으로메모리 자원의제약으로부터지금까지 어느데이터를어느정도 TimesTen 에실을까 를면밀하게설계할필요가있었습니다만, 데이타베이스 버퍼 캐쉬와같이 우선이만큼메모리를확보했기때문에이것을사용하고 라고하는설계가가능해짐 TimesTen 을응용계층에있는데이타베이스 버퍼 캐쉬로서구축하는것도가능 1. 데이터 Z 를요구 A B C 2. Z 는캐쉬되어있지않기때문에 Oracle Database 에문의 4. Z 를제공 Oracle Database Z 3. Z 를캐쉬
45 Data Types 데이타베이스속성 TypeMode 를 TimesTen 모드또는 Oracle 모드로설정하는것으로, 과거의 TimesTen 와같은데이터형이나 Oracle Database 와같은데이터형으로선택가능 6.0 까지는 SQL92 호환의데이터형을사용해, Oracle Database 와는다른데이터 Type 이있었슴 추가된데이터형 NUMBER VARCHAR2 NVARCHAR2 사양을변경할수있는데이터형 DATE CHAR NCHAR TIMESTAMP
46 SQL Enhancements Cascade DELETE ROWNUM DECODE / COALESCE / MERGE MINUS / INTERSECT TRUNC GROUP BY 의향상 SELECT FOR UPDATE 의향상 Sub Query 의향상 VIEW 의 UNION 이가능 Primary Key 값을 UPDATE 가가능 TO_NUMBER 컬럼개수의상한이 255 에서 1000 로늘어남 ttbulkcp 의퍼포먼스향상 컴파일러의업그레이드 통계정보는 Lock 이아니고 Latch 로구현 SQL 옵티마이저의향상
Globalization Oracle Database 10g XE 의 NLS 라이브러리를거의그대로구현해, 84 문자코드 세트에대응 문자코드변환, 언어정렬, 언어정렬이끝난색인의작성, 케이스무시의 SELECT, 엑센트기호무시의 SELECT, 문자수에의한컬럼길이의설정이가능 UTF-8 이었던 NCHAR/NVARCHAR 는 UTF-16 으로변경 문자코드 세트에 TIMESTEN8 를지정하면과거의 TimesTen 와의호환모드 Cache Connect 를사용하는경우는, TimesTen 와 Cache Connect 의문자코드 세트는같게할필요 NLS_LANGUAGE 와 NLS_TERRITORY 는 AMERICAN_AMERICA 47
48 Cache Group and Replication Replication 이페일 오버했을때, Cache Connect 의설정이나 Subscriber Node 의설정이자동으로수행 스탠바이 액티브 Subscriber Subscriber 페일 오버 스탠바이
49 그외다른주요신기능 6.0 와 7.0 간에클라이언트서버구성할수있슴 Replication 중데이터경합시의에러 파일을 XML 포맷지원 SNMP 트랩의타겟을복수지정가능 유저 에러 로그와오라클 서포트전용의로그가분할 XLA 의향상 ttdaemonadmin 에 -force 옵션이추가 tthostnameset / tthostnameget 의추가 Windwos x64 / MontaVista CGE 4.0 / SUSE Linux Enterprise Server 10 의지원