oracle in-memory database timesten - :: dbguide.net :: … · · 2008-04-25oracle in-memory...
TRANSCRIPT
<Insert Picture Here>
Oracle In-Memory Database TimesTen ㈜비아이씨엔에스(BI C&S) 김종현
팀장
Agenda• In-Memory Database 개요
• Disk DB와 Oracle TimesTen 비교
• TimesTen 주요기능
• TimesTen 고 가용성 (Replication option)
• TimesTen 과 Oracle 연동 (Cache connect Option)
• 지원 플랫폼
메모리 Database 수요 확대
• Real Time Enterprise , IT Convergence -IMS (IP based Multimedia Subsystem) : Telephony and IT services are merging
-SOA (Service Orient Architecture)
-BAM(Business Activity Monitoring)
-RFID/USN (Ubiquitous Sensor Network)
• Client 증가 , Rich Contents , Multi-Service• ROI 를 고려한 대용량
Transaction 처리
• 64bit computing 메모리 가격 하향 추세
Price of 1 Gigabyte of RAM Over Time*
$500$3,000
$40,000
$0
$10,000
$20,000
$30,000
$40,000
$50,000
1986 1996 2004
In-Memory Database 개요
In-Memory Database 정의
•데이터베이스
전체를
메인
메모리에
상주시키고, 메모리
상에서
데이터베이스를
관리
해주는
DBMS로
초고속
실시간
트랜잭션
처리를
필요로
하는
모든
산업
분야에
적합
-높은
읽기
처리량이
필요한
분야
-고
가용성을
갖추고, 높은
쓰기
처리량이
필요한
분야
예: Prepaid wireless billing, equities trading
-빠른
응답
시간이
필요한
분야
예: softswitch, push-to-talk
-새로운
애플리케이션
또는
심각한
성능
문제를
안고
있는
기존
애플리케이션
-기존
데이터베이스를
유지하면서, “hot” 데이터에
대한
캐시
기능이
필요한
부분
In-Memory Database 개요
In-Memory Database 핵심 조건
• 성능
•
확장성 (Scalability)
-
CPU 증설에
따른
성능
향상
보장
•
고 가용성 (High Availability)
-
장애
극복을
위한
이중화
(Active/Active , Active/Standby)
-
장애
노드의
복구
성능
(MTTR 최소화)
•
기존 Disk Database 와
연동
-
메모리
DB 와
기간
DB의
연동의
설정의
간편함
-
메모리
DB 와
기간
DB 의
양
방향
트랜잭션
반영
속도
In-Memory Database 개요
Position of TimesTen in 3-Tier ArchitectureDisk DB와 Oracle Timesten 비교
ApplicationsApplicationsApplications
1 Tier
2 Tier
3 Tier
•
TimesTen은 Application 단에
위치해서
Client에 가장
빠른
응답속도를
보장
최대
성능Instantly Responsive
Tightly Integrated
Highly Scalable
TimesTen VS Conventional RDBMSDisk DB와 Oracle Timesten 비교
Connection 부하 (IPC)어플리케이션
프로그램
DBMS 엔진
실시간데이터베이스
TimesTen
Disk-based
RDBMS메모리 복사 부하
데이터 주소 변환 부하
I/O 부하
추가 기능에
대한 부하
Oracle-TimesTenIn-Memory Database
Conventional RDBMS
버퍼 관리 부하
ODBC API
ODBC/Native API
Applications
• Embeddable: 20-30MB• Direct-Linked• Memory-Tuned Data Layout• Disks to Ensure Durability/Recovery
Applications
성능비교 – Disk DB
혼합
트랜잭션
성능비교 – TimesTen V.S. Oracle TimesTen
처리 성능 비교
: HP9000 rp8420(RISC) 4CPU/ 32G
RDBMSINSERT
UPDATE
SELECT
Oracle DBMS
UPDATE
SELECTV.S.
Performance
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
Tim
esTen (
Direct)
Ora
cle
Tim
esTen
(Direct)
Ora
cle
Tim
esTen
(Direct)
Ora
cle
Insert ( 1200만건) select(180만건) update(180만건)
TPS
Total TPS
•Oracle 설정
1. Buffer Keep 기능을 이용Data를 SGA (메모리영역)에상주 후 성능 측정
2. Buffer Keep을 사용하지 않은
일반 운영환경에서는
Oracle 성능 절감
성능비교 – TimesTen with Oracle
Oracle TT TT Oracle
50개
컬럼의
Table에
대해
200만건
Loading 시
약
180초TT 처리
20만건
update : 10초
Oracle DB 반영
시간
: 190초
In-Memory Database TimesTen 개념
사용자 응용프로그램
JDBC – ODBC – SQL92
Transaction Log files
Checkpoint files
21
메모리영역
- DB startup시
모든 Table과 Data를 파일에서
메모리로 로딩
- 응용프로그램에서 필요한
Data를 Disk I/O없이 즉시
응답하여 Disk DB 성능 한계를
보완
- Disk Swap영역으로 paging이
되지 않게 할 수 있음
파일시스템
- 트랜잭션 안정성을
보장하기 위해 변경분을
파일에 저장
- 고성능 Logging
TimesTen 주요기능
성능 – 대용량 DB 기동 시간
사용자 응용프로그램
JDBC – ODBC – SQL92
Transaction Log files
Checkpoint files
21
메모리영역
H/W 구성
SunFire6900 CPU : 2.4GHz 8core Memory : 32G
Storage Spec 모델 : ST6140 I/O 채널 : 4G Disk Cache : 4G
Data 량 Checkpoint File Size : 24G
실 데이터 사용량 : 14G 데이터 건수 : 3200만 건
TimesTen 7.0 기동 시간
2분 내외
파일시스템
성능비교 – 확장성
Sun Solaris 9, 1.6 GHz Sparc, C with ODBC300,000 Reads
Per Second
100,000 WritesPer Second
1212--CPU IBM AIX POWER 1.2 GHzCPU IBM AIX POWER 1.2 GHz
TimesTen 제품 군
TimesTen 주요기능
TimesTen IMDB
Real-Time Database System Real-time data management for applications requiring exceptional performance
Typical Uses:Network Equipment & Systems
Value-Added Services
Reference Data
DataServer
Network
Cache option
Real-Time Dynamic Data Cache Real-time relational processing of selected data from an Oracle database, including automatic data loading and update synchronization
Typical Uses:Application Server Acceleration
Enterprise App Acceleration
Application-Tier Data Caching
Replication option
Real-Time Database System with Replication Real-time data management, and replication, for applications requiring exceptional performance, with the failover, recovery, and evolution of databases with minimal downtime
Typical Uses:Network Equipment & Systems
Value-Added Services
Reference Data
BDataServer
Primary Subscriber(s)
Network
DataServer
Cache
Network
TimesTen ArchitectureTimesTen 주요기능
DSN
C/S (TCP/IP,UNIX Domain Socket,IPC)
Direct Link (Shared Memory) protected by Micrologging™
TimesTen Architecture - DataStore
TimesTen shared libraries
Data Tables, Indexes,
System Tables Lock
s, C
urso
rs,
Com
pile
d C
omm
ands
, Te
mp
Inde
xes
Log Buffer
In-Memory Data Store
In-Memory Data Store
In-Memory Data Store
Application routinesTimesTen
shared libraries
Permanent Memory Region
Temp Memory Region
1. 단일 인스턴스에서 여러개의
DataStore 생성 / 운용 가능
2. 응용프로그램(utility 포함) 최초
접속 시 Database 자동 생성 가능.Embedded 시스템 활용 용이
3. 체크 포인트 파일 : Index 와
record를 모두 저장No index rebuilding in Startup
TimesTen 주요 특징
• 메모리에서 모든 데이터 관리
- MemoryLock -> OS paging out 방지
- 메모리 block 조각 모음 지원
• Hash Index , T-tree index (MMDB에 적합)
• 간편한 튜닝 Cost Base Optimizer
• Direct Linked , Client / Server 접속을 통한 다중
Threading
• 표준 Data Access API ( ODBC , JDBC, SQL 92)
• Transaction 안정성
- Log file 과 check point file 에 변경 기록
(메모리 휘발성 극복 , Recovery 가능)
- 트랜잭션 단위로 Buffer commit , Disk Commit 혼용 지원
• SNMP 지원
• X/Open , DTP (분산 트랜잭션 지원) -> TP 모니터(턱시도)지원
Direct Linked : Application과 DBMS 가 동일한 주소공간에서 실행, process 간의 overhead (Context Switch)를 최소화 하여 성능 극대화 , TimesTen 만 지원함.
Transaction Logs
TimesTen Libraries
Application
TimesTen Libraries
Application
Checkpoint files
Network
Client- Server
InIn--Memory DatabaseMemory Database
Direct-linked
TimesTen Libraries
ApplicationTimesTen Client lib
Application
• Data aging 은 더 이상 필요하지 않은 데이터를 제거
• 과거의 데이터를 특정 시간을 기준으로 제거
• 일정 기간 동안 사용하지 않은 데이터를 제거
• Examples• 어제 날짜의 항공기 일정을 제거 (data older than 24 hours)• 시스템에서 특정 시간 동안 열람하지 않은 사용자의 프로필 정보를 삭제
• TimesTen 7.0 은 두 가지 자동 data aging 타입 지원
• Time-based aging – timestamp 값 기준
• Usage-based aging – LRU 알고리즘 기준
• 사용자가 aging 정책을 세울 수 있음
• TimesTen 테이블과 cache group에 적용
Support for Data Aging
Data Publishing - Transaction Log API (XLA)
First TransactionUpdate Record
TransactionCommit Record
XLA interfaceRead Update Records for a TransactionData Data
StoreStore
Committed Transactions
Applications
Updates
XLA Application
Generate SQL statements
Apply changes to
other databases
OtherApplicationsPublish events to
other applications
XLA Application
Transaction Log files
Log0
Log2Log 1
Transaction Log Memory Buffer
• 데이터 변경 사항을 실시간으로
모니터링하는 API를 제공
• 이기종의 외부 시스템과 연동
• 이를 이용하여 real-time event notification and processing 시스템을 구현함
• C & JAVA ( JMS )
• Table 과 Materialized view의 변경 사항
detect
• Bookmark 기능을 통해
reconnection/system shutdown 이후에도
변경 Log 적용의 연속성 지원
TimesTen 안정성• 단일 트랜잭션의 안정성
- Log file 과 check point file을 이용하여 메모리 상주의 휘발성 극복
- 한 응용 프로그램에서 Disk commit / Buffer commit 을 혼용사용 성능과 안정성 동시 만족
사용자 응용프로그램
JDBC – ODBC – SQL92
Transaction Log files
Checkpoint files
21
메모리영역
빠른 처리 -> 휘발성
파일시스템
Disk I/O 발생 -> 성능저하
Transaction Log Memory Buffer
.
.
.
Tx1 (Buffer Commit)
Tx2 (Disk Commit)
Tx3 (Buffer Commit)
Background Log flusher
TimesTen 안정성• 응용프로그램 HA(High Availability) 구성
- Replication 기능을 이용하여 Data 이중화 통한 고 가용성 구축
사용자 응용프로그램
양 방향 또는 단 방향
고속 복제(Replication)
TimesTen 복제(Replication)기능 특징
- 다양한 복제 구성
- Table 단위 또는 Database단위 복제
- 동기/비동기 복제 혼합 지원
- DDL 복제 지원
(컬럼 삭제 추가 등..)
- 온라인 Upgrade
- 간편한 복원
- Oracle DB 와 연계하여 확장성 및
가용성 보장.
Replication configurations
•
유연한
구성
•
active-standby
•
active-active
(업무
분산)
•
N-way, 1:1 , 1:N
3. ReplicationTimesTen 고 가용성
(Replication)
Replication configurations3. Replication
네트워크
Bandwidth 병목
중앙서버
지역1 지역2 지역3
Branch Office
LAN
WAN
Propagator
TimesTen 고 가용성
(Replication)
Asynchronous Replication•
커밋된
트랜잭션은
Subscriber에
비동기적
전달
•
매우
빠른
응답시간
제공
•
트랜잭션
처리량이
많고
대기
시간이
적은
어플리케이션에
적합
3. ReplicationTimesTen 고 가용성
(Replication)
Synchronous Replication – Return Receipt
•
Return Receipt
트랜잭션 데이터는 동기적 방식으로 응답신호(Ack)를 요구
커밋된 트랜잭션이 커밋을 수행한 어플리케이션에 응답하기 전에 반드시 Subscriber에
전달 되었음을 보장
3. ReplicationTimesTen 고 가용성
(Replication)
Synchronous Replication – Return 2-safe
• Return 2-safe트랜잭션 데이터는 동기적 방식으로 응답신호(Ack)를 요구
커밋된 트랜잭션이 커밋을 수행한 어플리케이션에 응답하기 전에 반드시 Subscriber에 전달
되고 Log file에 적용 됨을 보장
3. ReplicationTimesTen 고 가용성
(Replication)
Replication Definition3. Replication
create replication rep1element e1 table mytab
master masterds on server1subscriber subscriberds on server2
element e2 table mytabmaster subscriberds on server2subscriber masterds on server1;
create replication rep1
element e datastore
master masterds on server1
subscriber subscriberds on server2;
Application
server1 server2
Application
server1 server2
Replicate entire
database
Ex2) Active – Standby (Database 레벨)Active Standby
Ex1 ) Active – Active (Table 레벨)Active Active
Application
•Server 1 , Server 2 에 동일한 Replication 정의 문 사용
mytab mytab
장애 발생시 무 중단 복구 예
•
하나의
Replication 정의문을
replication 대상이
되는
MMDB에
동일하게
적용함으로써
장애
시
MMDB1에서
MMDB2를
복사하여
장애
발생시
서비스
중단
없이
복원이
신속하여
MTTR (Mean Time To Repair) 최소화
Application
MMDB1 MMDB2
Application Application
MMDB1 MMDB2
Application서비스 절체
Application
MMDB1
Application서비스 가용
MMDB2
ttRepAdmin -duplicate -from MMDB1 -host Server2 MMDB2
장애 복원 후 Data 자동 복구
TimesTen Node 1
TimesTen Node 2
TX 1
TX 2
TX 3
TX 1
TX 2
Failure on Node 1TX 4
TimesTen Node 1
TimesTen Node 2
TX 1TX 2
TX 3 trapped in Node 1
TX 1TX 2
TX 5
TX 4
TimesTen Node 1
TimesTen Node 2
TX 3 trapped in Node 1
TX 5
Node 1 recovered and up
TX 3
Master catch-up
Master Catch-up
Overview Cache connect to Oracle4. Cache Connect to Oracle
•
세계
최고의
Disk 형
DBMS인
Oracle Database 와
세계
최고의
In-Memory Database인
TimesTen을
투명하게
연동하여
별도의
개발
없이
두
DB간의
Data Consistency를
보장
•
두
제품간에
제품레벨의
cross certification 이
보증
되므로
시스템
구축
시
타사
DB간에
발생할
수
있는
certification 모호성이
최소화됨.
•
기
검증된
TimesTen의
뛰어난
성능과
Oracle Database의
대용량
데이터
처리의
장점을
모두
수용
Applications
Tightly Integrated
Applications ApplicationsInstantly Responsive
Highly Scalable
Strong point of Integration TimesTen & Oracle4. Cache Connect to Oracle
•
모든
DB Layer (Memory DB & Disk DB) 에 대한
무정지
시스템
구축가능
Node1
DB
Node2
TT TT
APP APP
RAC
Node1
DB
Node2
TT TT
APP APP
RAC
Automatic Failover
•
통합된
DB로써
업무
목적에
맞는
메모리
DB와
Disk DB의
효율적인
확장가능
(Scale-Out)-
Memory DB와
Disk DB를
분산하여 각
DB의
사용목적에
맞는 H/W capacity plan이
가능
DB
소형 H/W
Event Data 수집용
대형 H/W
배치 , 통계 , DW 용
기록data 유지
중.소형 H/W
대용량 트랜잭션(OLTP) 용
Node1
DB
Node2
TT TT
APP APP
RAC
모든
MMDB 장애
시에도
서비스
운영가능
Cache connect to Oracle4. Cache Connect to Oracle
•
오라클
테이블
전체
또는
부분
데이터를
Caching
•
Read-only or updateable
•
양방향
데이터
전송
From TimesTen to Oracle
From Oracle to TimesTen
•
Asynch or Synch write-through
•
하나의
오라클
DB에
다중
Data Store 가능
•
Replication option과 연동하여 사용 가능
•
Auto Aging , Load on Select
•
간단한
설정
, Oracle 반영
성능
보장
TimesTen 과 Oracle 연동
(Cache connect Option)
CREATE CACHE GROUP PremierUsers
FROM CUSTOMER (
NAME VARCHAR2(100) NOT NULL,
ADDR VARCHAR2(100) )
WHERE CUSTOMER.ORDER > 500;
Read-only Cache Groups
•
Read-only Cache Groups
•
변경은
허용되지
않음
•
Application은 TimesTen에 대한 단일 connection으로
오라클의
SQL을
처리할
수
있음
(Pass-through 기능)
•
오라클의
변경
데이터를
TimesTen에
자동으로
refresh
•
Incremental refresh (time intervals)
•
Full refresh
•
Optionally, Autorefresh OFF
Read Only
READONLY Cache Group
Cache
Auto-refresh updates from Oracle
Application
Pass-through SQL for non-cached tables or
updates
Oracle DBOracle DBOracle DB
4. Cache Connect to OracleTimesTen 과 Oracle 연동
(Cache connect Option)
Updatable Cache-Groups
• Synchronous WriteThrough (SWT)• 트랜잭션은 Cache Group과 오라클 데이터베이스에서
동시에 Commit됨
• 오라클과 Cache Group 에서 commit이 완료될 때까지
어플리케이션은 기다림
• Asynchronous WriteThrough (AWT)• 트랜잭션의 변경사항을 Oracle로 비동기적으로 전달
• 어플리케이션이 변경 사항의 commit 여부를 기다리지 않음.
Write Through
WRITETHROUGH Cache Group
Cache
Auto-propagate updates to
cached tables Load once on creation
Application
Pass-through SQL for non-cached tables
Oracle DBOracle DBOracle DB
4. Cache Connect to OracleTimesTen 과 Oracle 연동
(Cache connect Option)
SQL PassThrough to Oracle
• Pass-Through는 어플리케이션이
TimesTen을 통해 오라클에 SQL을 전송
• 캐시된 테이블에서 사용할 수 없는 SQL을
정의하고 그 SQL을 오라클에 전송
• Cache가 오라클에 대한 연결을 관리
Oracle DBOracle DBOracle DB
Cache Group
TimesTen
PassThrough Logic
Statements that cannot
be handled in cache are
passed through to Oracle
Statements that can
be handled in cache
Application
4. Cache Connect to Oracle
Active Standby Pair Replication
Node 1 = ActiveNode 2 = StandbyNodes 3, 4, 5 optional
Oracle to TimesTenTimesTen to TimesTen Repl.Application Reads
TimesTen Node 1
TimesTen Node 2
Auto-Refresh
ReplicationTimesTen
Node 3
TimesTen Node 4
TimesTen Node 5
Oracle
ReadsTimesTen
Node 1TimesTen
Node 2
Auto-Refresh
TimesTen Node 3
TimesTen Node 4
TimesTen Node 5
Oracle
Reads
TimesTen Node 1
TimesTen Node 2
Auto-Refresh
ReplicationTimesTen
Node 3TimesTen
Node 4
TimesTen Node 5
Oracle
Reads
After Failure
TimesTen 과 Oracle 연동 - 조회성능 개선 예
Oracle TimesTen:Flight schedule제품 및 가격
사용자 인증정보
Oracle Database:Flight reservation주문 정보
사용자 전체정보
Reads
TimesTen 과 Oracle 연동
(Cache connect Option)
TimesTen 과 Oracle 연동 - 혼합 트랜잭션 성능 개선 예
Region 1 Region 2
Oracle Database:전체 가입자전제 요금 정보Message storage
ReadsWritesOracle TimesTen:
요금 계산
온라인 가입자
계좌 잔고
TimesTen 과 Oracle 연동
(Cache connect Option)
TimesTen + Oracle 혼용 사용 예
Transparent/ bi-directional
ApplicationWeb Clients
Java Web Application
WAS
Database
고 부하 업무 일반 업무
Periodical Batch Operation
최근 1주일치 data 유지
Cache Connect To Oracle 기능을 사용하여 고 부하의 업무 Data를 TimesTen In-Memory Database 에위치
이러한 구조의 장점은 다음과 같습니다.
1. 빠른
응답
시간
2. Peak Time 시
지연시간
최소화
3. 전체
시스템의
여유율
확보
-
고
부하
성
workload를
TimesTen에서
처리함으로써
Oracle DB 의
자원이 확보되어
배치성
마감
작업을
효과적으로
수행
자주 access 되는 Data를 TimesTen에 시간단위로cache가능하여 Memory 효율성 증대 (ex: 최근 일주일치 Data만 TimesTen 위치하고, 그 이외의 data는Oracle DB에서 조회)
TimesTen은 WAS 단에 위치할 경우 최고의 응답시간을 보장하지만 Database Tier에도 위치하여 성능향상 가능.
Cache Connect To Oracle 기능을 사용하여 고 부하의 업무 Data를 TimesTen In-Memory Database 에위치
이러한 구조의 장점은 다음과 같습니다.
1. 빠른
응답
시간
2. Peak Time 시
지연시간
최소화
3. 전체
시스템의
여유율
확보
-
고
부하
성
workload를
TimesTen에서
처리함으로써
Oracle DB 의
자원이 확보되어
배치성
마감
작업을
효과적으로
수행
자주 access 되는 Data를 TimesTen에 시간단위로cache가능하여 Memory 효율성 증대 (ex: 최근 일주일치 Data만 TimesTen 위치하고, 그 이외의 data는Oracle DB에서 조회)
TimesTen은 WAS 단에 위치할 경우 최고의 응답시간을 보장하지만 Database Tier에도 위치하여 성능향상 가능.
Data
누적
JDBC JDBC
Proven in Real-Time Deployments 전세계에서
가장
많은
reference를
확보한
검증된
제품
• Real-time billing• Voice over IP• Mobile Networks
NetworksNetworks
• Value-added Services
• Revenue Assurance• Network and QOS
Management• Authentication
TelecomTelecom
• Order Matching• Risk
Management• Real-time
Analytics
Wall StreetWall Street
• Call Centers• Hosted CRM• Dynamic
personalization
CustomerCustomer--FacingFacingApplicationsApplications
TimesTen 7.0 Supported PlatformsPlatform ProcessorHP-UX 11i and 11i v2 PA-RISC (32-bit and 64-bit)
HP-UX 11i v2 IA64 (32-bit and 64-bit)
HP Tru64 64-bitIBM AIX 5L 5.2 and 5.3 POWER (32-bit and 64-bit)Microsoft Windows 2000, Windows XP, Windows 2003 Server X86 (32-bit and 64-bit)
MontaVista Linux CGE 4.0 X86 (32-bit and 64-bit)
Red Hat Enterprise Linux 3 and 4X86 (32-bit and 64-bit) Itanium2 (64-bit)
Sun Solaris 8, 9, 10 Sparc (32-bit and 64-bit)
Sun Solaris 10 x86 on AMD Opteron (32-bit*/64-bit)
SUSE Linux Enterprise Server 9, 10X86 (32-bit and 64-bit) Itanium2 (64-bit)