oracle timesten 事例と?要 · 마이크로세컨드 마이크로세컨드 9 28 70% select; 20%...
TRANSCRIPT
Real-Time Data Management for Performance Critical Applications
Oracle TimesTen 소개
2007년 01월 30일
엄진우 ([email protected])
수석 컨설턴트
Technical Solution Consulting
한국 오라클 주식회사
2
Agenda
TimesTen의 소개
TimesTen 제품기능과 옵션
TimesTen과 Oracle Database 의 비교 및 연동
TimesTen의 적용 범위
TimesTen 도입 사례
TimesTen 7.0 신기능 소개
3
TimesTen의 소개TimesTen의 소개
4
전 세계 1500이상 기업에서 사용 중인 검증된 제품
Disk I/O 발생을 최소화한 Transaction 안정성
간편한 Replication 설정 및 운영
성능저하 및 Data 정합성을 고려한 Replication
Direct Link 연동으로 Memory DB의 성능(TPS) 극대화
Oracle DBMS(RAC 포함) 와 유연한 통합 및 확장성
- Cache Connect 옵션
간편한 운영 및 관리
Memory 및 Disk Size 산정
Oracle In-Memory Database TimesTen의 특장점
5
기본 제품 및 옵션
TimesTen In-Memory Database리얼타임·데이타베이스·시스템
이용 용도네트워크 장치
부가가치 서비스
Embedded 시스템
옵션:ReplicationTimes Ten간의 replication이용 용도
핫 스탠바이
분산 replication
옵션:Cache Connect to Oracle리얼타임·데이터·캐싱
Oracle의 캐쉬로서 Times Ten를 사용
이용 용도Middle Tier·데이터 캐쉬
운영 데이타 저장소
엔터프라이즈 어플리케이션의 고속화
Cache Group
TimesTen
Application
Oracle DBOracle DBOracle DB
Cache Group
TimesTen
Application
Oracle Database
Cache Connect to OracleCache Connect to Oracle
ReplicationReplication
Checkpoint files
Checkpoint files
TransactionLogging
TransactionLogging
TransactionLogging
TransactionLogging
6
TimesTen 제품 기능과 옵션TimesTen 제품 기능과 옵션
7
고성능초당 수만~ 수십만의 SQL를 처리하는 성능
데이터 보증/복구트랜잭션 로그
replication표준 RDBMS / SQL 데이터 모델
SQL-92, JDBC,ODBC API로부터의 액세스
트랜잭션·로그 API(XLA)에 의한 고속 이벤트통지
XA / JTA 분산 트랙잭션
Oracle DB의 캐쉬로서 기능
행 레벨·락읽기포함/쓰기의 동시 실행 가능한 Read CommitSmall Footprint ( 6MB )
TimesTen의 기능
어플리케이션 어플리케이션
데이타베이스층
Middle Tier
Presentation layer
8
간편한 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 로 통합 관리 예정
간편한 운영 및 관리
9
TimesTen의 옵션 : ReplicationTimesTen의 옵션 : Replication
10
Replication
트랙잭션·로그·베이스Disk Logging또는 Diskless Logging이 필요
TCP/IP스트림·소켓을 통해서 replication 에이전트가 갱신 정보를 송수신
동기 / 비동기 모드를 동적으로 변경 가능
타임 스탬프 기반의 데이타 경합 해결
11
Replication - TimesTen to TimesTen
고속성과 신뢰성로그·베이스
비동기 / 동기방식의 동적 전환가능
다양한 replication 구성
단방향
분산 작업의 Workload
멀티 마스터 계층
분할 작업의 Workload
12
Replication 방식
비동기 replication수신 측에 의존하지 않는다
동기 replicationReturn·Receipt·replication
동기화할 수 없는 상황을 감지 가능
Return·TwoSafe·replication완전한 동기화를 보증
속도
영속성
13
비동기 replication
로그·파일
어플리케이션
데이터·스토어
Rep.Agent
로그·파일
Rep.Agent
송신측
수신측
어플리케이션
5. 수신 측에 송신
2. 완료
로그·버퍼
데이터·스토어
로그·버퍼
1. COMMIT발행
3. 로그·파일에 기록
8. 로그·파일에 기록
10. 송신이 끝난로그를 북마크
7. 데이터스토어에 적용
6&9. 송신 측에 Receipt 답신(이전의 적용 상황도 포함)
4. 배치 작성
14
Return·Receipt replication (동기)
로그·파일
어플리케이션
데이터·스토어
Rep.Agent
로그·파일
Rep.Agent
송신측
수신측
어플리케이션
5. 송신 측에 Receipt 답신
8. 완료
로그·버퍼
데이터·스토어
로그·버퍼
1. COMMIT발행
7. 로그·파일에 기록
9. 송신이 끝난로그를 북마크6. 완료
6. 데이터스토어에 적용
3. 배치 취득
4. 수신 측에 송신
2. 로그·파일에 기록
15
Return·TwoSafe replication (동기)
로그·파일
어플리케이션
데이터·스토어
Rep.Agent
로그·파일
Rep.Agent
송신측
수신측
어플리케이션
7. 완료
6. 완료
로그·버퍼
데이터·스토어
로그·버퍼
1. COMMIT발행
5. 로그·파일에 기록
8. 송신이 끝난로그를 북마크
4. 데이터스토어에 적용
3. 배치 취득
2. 로그·파일에 기록
4. 수신 측에 송신
16
TimesTen 옵션 : Cache Connect to OracleTimesTen 옵션 : Cache Connect to Oracle
17
Cache Connect to Oracle 의 특징
응용 계층의 TimesTen상에Oracle Database 의 데이터를 캐쉬
Table 전체 / Table 일부의 캐쉬
Oracle Database 로부터 TimesTen에 복사(Refresh)TimesTen로부터 Oracle Database 에 동기 / 비동기에 전파(Flush)읽기 전용 / 갱신 가능 캐쉬·그룹
TimesTen에 접속만으로 양쪽 데이타베이스의 선택 / 갱신이 가능한 PassThrough 기능
캐쉬·인스턴스의 에이징
Client Application + TimesTen Oracle
18
오라클 DB의 RAC 와 TimesTen의 Cache Connect간에 장애극복타사는 세션을 인위적으로 변경을 하던가 별도 모듈을 개발필요
Oracle RAC1 Oracle RAC2
RAC(Real Application Cluster)
TimesTenNode 1
TimesTenNode 2
Cache ConnectCache Connect
Oracle RAC1 Oracle RAC2
RAC(Real Application Cluster)
TimesTenNode 1
TimesTenNode 2
Cache ConnectCache Connect
ReplicationReplication
Oracle DB(RAC) 와 유연한 통합 및확장성 (Cache Connect)
19
TimesTen 과 Oracle Database 의 비교 및 연동TimesTen 과 Oracle Database 의 비교 및 연동
20
아키텍쳐 비교
어플
리케
이션
·프로
그램
DBMS “엔진”
데이
타베
이
스
TimesTenOracle
connection·오버헤드(IPC/네트워크)
데이터를 프라이빗 버퍼에카피해 사용
다수의 백그라운드프로세스가 기동
TimesTen
디스크 베이스 RDBMS
디스크 I/O오버헤드
버퍼 관리의 오버헤드
ODBC API
ODBC/네이티브 API
어플리케이션
어플리케이션
•AP와 DB간의 메모리 공간을 공유•어플리케이션에 내장가능 (10 MB)•메모리에 최적화된 레이아웃•데이터 보증과 복구에 디스크를 이용
21
TimesTen의 이용 형태
어플리케이션
TimesTen라이브러리
네트워크
어플리케이션·플랫폼
인 메모리
데이타베이스
어플리케이션
TimesTen라이브러리
트랜잭션 로그
체크 포인트·파일
Times Ten Sever
TimesTen라이브러리
TimesTen클라이언트
클라이언트
어플리케이션
다이렉트·접속·액세스·고속 데이터 액세스
·어플리케이션으로부터, 공유 메모리에 직접 액세스
·데이터 획득을 위한 네트워크 통신 없음
클라이언트·서버·액세스·네트워크 경유로 액세스
·유연하게 어플리케이션을 배치
22
응답시간의 비교
OSDL(Open Source Development Labs)Carrier Grade Linux Group 채용 벤치마크
Oracle 10g
벤치마크
프로그램
Oracle 10g
벤치마크
프로그램
Oracle
• 3층 구조
• 어플리케이션층에 벤치마크프로그램 사용
Oracle + TimesTen
•벤치마크 프로그램에TimesTen 6.0을 링크
• TimesTen상의데이터를 갱신
presentation layer
23
응답시간의 비교
4496
600
4866
7901
4297
83 16 32 35 81 50 38456 484
0
2000
4000
6000
8000
DelC
olFo
r
GetAc
cDat
a
GetBa
sDat
a
GetNe
wDes
t
InsC
allFo
r
UpdS
ubDat
a
Upda
teLo
c
마이크로세컨드
Oracle
Oracle + TimesTen
24
0
10
20
30
update select
마이
크로
세컨
드 마이크로 세컨드
99
2828
70% select; 20% update; 10% insert
Oracle TimesTen R 6.0, 4-CPU, 3 GHz x86 Xeon, 32-bit Red Hat Linux
마이크로 세컨드
단순한 검색 처리의 응답 시간 평균평균 99마이크로마이크로 세컨드세컨드갱신 처리의 응답 시간 평균평균 2828마이크로마이크로 세컨드세컨드
((마이크로마이크로 세컨드세컨드 = 1= 1초의초의 100100만만 분의분의 1)1)
응답 시간 성능
32,66353,361
70,11154,303
90,793
121,70598,568
169,437
250,550
0
50,000
100,000
150,000
200,000
250,000
300,000
update mixed select
1 CPU
2 CPUs
4 CPUs
1초당
처리
건수
70% select; 20% update; 10% insert
Oracle TimesTen R6.0, 4-CPU, 3 GHz x86 Xeon, 32-bit Red Hat Linux
4 CPU 서버로, 11초초 당당 2525만건만건의 검색
77만건만건의 갱신 트랜잭션(transaction)를 실현
Throughput
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
28
Oracle 제품과의 연계방법
Oracle Application Server Web CacheWeb Cache 는 HTML등의 어플리케이션층의 캐쉬
TimesTen은 데이타베이스층의 캐쉬
응답 시간을 최소화하는 Web Cache + TimesTen
Client Application + TimesTen OracleWeb Cache
29
TimesTen의 적용 범위TimesTen의 적용 범위
30
“Real-Time”인프라스트럭쳐·소프트웨어
TimesTen 는, Critical 퍼포먼스 요건을 가지는 어플리케이션에 대해,이벤트、트랜잭션、그리고 데이터·매니지먼트매니지먼트를 위한
”Real-Time”인프라스트럭쳐·소프트웨어를 제공합니다.
실시간 응답 높은 확장성 연속 가용성
증권거래 시스템 항공노선·오퍼레이션 실시간·빌링
모바일Push-To-Talk 비즈니스·액티버티 감시 수익성의 보증
비즈니스·프로세스 관리 엔터프라이즈·콜·센터 콜·라우팅
부정 액세스 검출 마켓·데이터 전달 비즈니스 최적화
Times Ten를 이용하고 있는 “Real-Time”어플리케이션&시스템
「리얼타임·시스템」의 실현
31
5
TimesTen에 최적인 시스템
OLTP업무에 데이타베이스·로직이 상대적으로 많은 시스템
데이타베이스
Oracle:85 ms중 80 ms가DB로직
Oracle +TimesTen:10 ms중 5 ms가DB로직
88%OFF
80
어플리케이션
Oracle:160 ms중 80 ms가DB로직
Oracle +TimesTen:85 ms중 5 ms가DB로직
47%OFF
80
데이타베이스
80
어플리케이션
80
5
55
TimesTen 추가
TimesTen 추가
32
참조 데이터의 캐쉬
빈번히 이용되는 데이터를 읽기 전용 캐쉬로 사용해, 네트워크의 부하 경감
EC사이트에서의 제품 카탈로그 검색
SCM 시스템으로의 제품 마스터
항공권 예약 페이지의 비행·스케줄
초기 로드
갱신은 PassThrough
Application Server Oracle
33
액티브·데이터의 캐쉬
액티브 고객 / 프리미엄 고객을 갱신 가능 캐쉬로 , 특정 유저에게의 대응을 스피드·업
콜·센터에서 고객 문의
개인화·사이트용의 고객 프로파일
CRM 시스템에서 액티브·유저 정보
요구가 있으면 로드
액티브하지 않게 되면에이지·아웃
Application Server Oracle
34
리얼타임·트랜잭션 처리
메세지 / 트랜잭션를 실시간으로 처리해, 이력 데이터를 Oracle Database 에 보존
증권거래의 시장 데이터
휴대 전화 서비스의 이용자 데이터
RFID 데이터를 수집 / 전송
외부 데이터의 취득
이력
Application Server Oracle
35
TimesTen 도입 사례TimesTen 도입 사례
36
고객 사례
증권업계 / 텔레콤을 중심으로 한1,500사 이상의 이용 고객
네트워크
서비스 인증
수익 보증
네트워크 QoS 관리
텔레콤
리얼타임 과금
콜 처리
부가가치 서비스
증권업계
오더·매칭
리스크 관리
리얼타임 분석
E커머스
SOA
콜·센터
Business Intelligence
37
전 세계 1500이상 기업에서 사용 중인검증된 제품(국내사례)
현물 , 선물/옵션 트레이딩 시스템
현행 및 요구사항기존 시스템(ISAM) 성능 향상
고 가용성 불안정
폭주 시 응답속도 불안
구성환경2 – CPU * 2 System (for Replication)HP rp7410 C - applications (ODBC)약 8 GB DataStore
기대목표빠른 시세정보 / 주문내역 조회 서비스 제공으로경쟁력 있는 트레이딩 서비스 제공
기존DDBMS대비 비용절감
완벽한 실시간 이중화 및 장애요인(H/W Disk)감소
near-zero administration
(B증권사 HTS System)
비교 내역 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
개인용 거래성립 주문
기관투자가
거래소
그 외의거래 회사
시장 데이터거래 주문주문 변경주문 조회
거래 성립스테이터스주문 수발주
주문 처리주문 수발주
개인투자가
통지
Positionkeeping
39
텔레콤:리얼타임 과금
유럽 대기업 휴대 통신 캐리어
TimesTen의 사용 목적
이벤트 취득 액티브한 선불 세션 볼륨·스테이터스
참조 데이터·룩 업 볼륨 / 컨텐츠 과금
잔고 관리 선불 인증 / 과금
퍼포먼스 지표
선불 인증으로 10 ms이하의 응답 시간
읽어 / 쓰기 = 70 : 30
시스템 구성8 CPU 서버 (+ 핫·스탠바이)
HP Tru64
수GB의 데이터·스토어
TimesTen의 가치
리얼 타임의 볼륨 할인 적용
리얼 타임의 컨텐츠 과금
민생품인 것
선불I/N
청구서배치
Oracle
볼륨 할인 컨텐츠 과금
40
엔터프라이즈:유저 정보 취득/인증
CRM ASP 벤더
TimesTen의 사용 목적유저 정보의 캐쉬
퍼포먼스 지표1만 4,000회사 - 20만명 이상의 이용자
1일 1,000만 리퀘스트
초당 최대 250 리퀘스트
시스템 구성4 CPU 서버×2대(+ 핫·스탠바이)
RedHat on Sun Opteron
Java 어플리케이션
2 GB의 데이터·스토어
TimesTen의 가치네트워크의 부하 경감
응답 시간의 단축
중요 고객에게의 프리미엄
Oracle Oracle
EMEA/ APAC
Internet
AS for NA
41
그외 다른 이용 방법
티켓 발권 사이트의 좌석 예약
피크 분산용의 FIFO 버퍼
실시간 정보 전용의 BI리포지터리
복수 데이터·소스를 위한 통합 포인트
SOA의 메세지·큐온라인·게임
리얼타임 감시 시스템
제철소 / 화학 플랜트등의 공업용 로봇의 제휴
항공기 / 열차 / 자동차
42
TimesTen 7.0 신기능 소개TimesTen 7.0 신기능 소개
43
Automatic Data Aging
Data Aging은 오래된 데이터를 자동적으로 지우는(또는 Oracle Database 에 자동적으로 기록) 기능
6.0까지는 시간 기준으로 오래된데이터를 Oracle Database 에기록
7.0에서는 시간 기준 또는 LRU 기준으로 Aging를 실시할 수 있슴
이 기능으로 한정된 메모리·자원을 유용하게 사용할 수 있게 되어, 슬라이드·윈도우를 간단하게 구현
A B C D
사용되지 않은 데이터를 캐쉬 아웃
TimesTen
Oracle Database
44
A B C
Automatic Load on SELECT
Cache Connect 기능의 일부로 제공되어 어플리케이션이 TimesTen에 SELECT 했을 때에 데이터가 없는 경우, Oracle Database 로부터 자동적으로 TimesTen가 데이터를로드해 오는 기능
Paththrough 와는 달리, 데이터는 그 이후TimesTen에 상주하므로, 2번째 이후의SELECT는 고속화
Automatic Data Aging 의 기능을 조합하는것으로 메모리·자원의 제약으로부터 지금까지 “어느 데이터를 어느 정도 TimesTen에 실을까”를 면밀하게 설계할 필요가 있었습니다만, 데이타베이스·버퍼·캐쉬와 같이 「우선 이만큼 메모리를 확보했기 때문에 이것을 사용하고」라고 하는 설계가 가능해짐
TimesTen을 응용 계층에 있는 데이타베이스·버퍼·캐쉬로서 구축하는 것도 가능
Oracle Database
1. 데이터 Z를 요구
2. Z는 캐쉬되어 있지 않기 때문에Oracle Database 에 문의
Z
3. Z를 캐쉬
4. 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 DELETEROWNUMDECODE / COALESCE / MERGEMINUS / INTERSECTTRUNCGROUP BY 의 향상
SELECT FOR UPDATE 의 향상
Sub Query의 향상
VIEW의 UNION이 가능
Primary Key 값을 UPDATE가 가능
TO_NUMBER컬럼 개수의 상한이 255에서 1000로 늘어남
ttBulkCp의 퍼포먼스 향상
컴파일러의 업그레이드
통계 정보는 Lock이 아니고 Latch로 구현
SQL 옵티마이저의 향상
47
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
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 의 지원