<Insert Picture Here> Oracle In-Memory Database 비아이씨엔에스 (BI C&S) 김종현팀장
Agenda In-Memory Database 개요 Disk DB와 Oracle 비교 주요기능 고가용성 (Replication option) 과 Oracle 연동 (Cache connect Option) 지원플랫폼
메모리 Database 수요확대 In-Memory 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* $50,000 $40,000 $40,000 $30,000 $20,000 $10,000 $0 $3,000 $500 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 의양방향트랜잭션반영속도
1 Tier Disk DB와 Oracle Timesten 비교 Position of in 3-Tier Architecture 은 Application 단에위치해서 Client 에가장빠른 응답속도를보장 Instantly Responsive 최대성능 2 Tier Applications Applications Applications Tightly Integrated 3 Tier Highly Scalable
Disk DB와 Oracle Timesten 비교 VS Conventional RDBMS Conventional RDBMS Oracle- In-Memory Database Applications 어플리케이션프로그램 Applications ODBC/Native API Connection 부하 (IPC) ODBC API DBMS 엔진 Disk-based RDBMS 추가기능에대한부하 데이터주소변환부하 메모리복사부하 실시간데이터베이스 Embeddable: 20-30MB Direct-Linked Memory-Tuned Data Layout Disks to Ensure Durability/Recovery 버퍼관리부하 I/O 부하
성능비교 Disk DB 혼합트랜잭션
성능비교 V.S. Oracle INSERT UPDATE SELECT V.S. UPDATE SELECT Oracle DBMS RDBMS 처리성능비교 : HP9000 rp8420(risc) 4CPU/ 32G TPS 45000 40000 35000 30000 25000 20000 15000 10000 5000 0 (Direct) Oracle (Direct) Performance Oracle (Direct) Oracle Total TPS Oracle 설정 1. Buffer Keep 기능을이용 Data 를 SGA ( 메모리영역 ) 에상주후성능측정 2. Buffer Keep 을사용하지않은일반운영환경에서는 Oracle 성능절감 Insert ( 1200 만건 ) select(180 만건 ) update(180 만건 )
성능비교 with Oracle Oracle TT TT Oracle 50 개컬럼의 Table 에대해 200 만건 Loading 시약 180 초 TT 처리 20 만건 update : 10 초 Oracle DB 반영시간 : 190 초
In-Memory Database 개념 주요기능 사용자응용프로그램 JDBC ODBC SQL92 메모리영역 - DB startup 시모든 Table 과 Data 를파일에서메모리로로딩 - 응용프로그램에서필요한 Data 를 Disk I/O 없이즉시응답하여 Disk DB 성능한계를보완 -Disk Swap 영역으로 paging 이되지않게할수있음 Transaction Log files 1 2 Checkpoint files 파일시스템 - 트랜잭션안정성을보장하기위해변경분을파일에저장 - 고성능 Logging
성능 대용량 DB 기동시간 사용자응용프로그램 JDBC ODBC SQL92 메모리영역 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 만건 Transaction Log files 1 2 Checkpoint files 파일시스템 7.0 기동시간 2 분내외
성능비교 확장성 300,000 Reads Sun Solaris 9, 1.6 GHz Sparc, C with ODBC Per Second 12-CPU IBM AIX POWER 1.2 GHz 100,000 Writes Per Second
제품군 주요기능 IMDB Real-Time Database System Real-time data management for applications requiring exceptional performance Network 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 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 Network B Cache DataServer DataServer DataServer Typical Uses: Network Equipment & Systems Value-Added Services Reference Data Primary Subscriber(s) Typical Uses: Network Equipment & Systems Value-Added Services Reference Data Typical Uses: Application Server Acceleration Enterprise App Acceleration Application-Tier Data Caching
Architecture 주요기능 C/S (TCP/IP,UNIX Domain Socket,IPC) DSN Direct Link (Shared Memory) protected by Micrologging
Architecture - DataStore Application routines shared libraries shared libraries 1. 단일인스턴스에서여러개의 DataStore 생성 / 운용가능 2. 응용프로그램 (utility 포함 ) 최초접속시 Database 자동생성가능. Embedded 시스템활용용이 In-Memory Data Store In-Memory Data Store In-Memory Data Store 3. 체크포인트파일 : Index 와 record 를모두저장 No index rebuilding in Startup Log Buffer Data Tables, Indexes, System Tables Locks, Cursors, Compiled Commands, Temp Indexes Temp Memory Region Permanent Memory Region
주요특징 Application Client lib Client- Server Network Application Application Application Libraries Libraries Libraries Direct-linked In-Memory Database Transaction Logs Checkpoint files 메모리에서모든데이터관리 - 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) 를최소화하여성능극대화, 만지원함.
Support for Data Aging Data aging 은더이상필요하지않은데이터를제거 과거의데이터를특정시간을기준으로제거 일정기간동안사용하지않은데이터를제거 Examples 어제날짜의항공기일정을제거 (data older than 24 hours) 시스템에서특정시간동안열람하지않은사용자의프로필정보를삭제 7.0 은두가지자동data aging 타입지원 Time-based aging timestamp 값기준 Usage-based aging LRU 알고리즘기준 사용자가 aging 정책을세울수있음 테이블과 cache group에적용
Data Publishing - Transaction Log API (XLA) Applications Data Store Updates Committed Transactions Publish events to other applications XLA Application XLA interface Read Update Records for a Transaction First Transaction Update Record XLA Application Generate SQL statements Transaction Commit Record Transaction Log Memory Buffer Other Applications Apply changes to other databases 데이터변경사항을실시간으로모니터링하는 API 를제공 이기종의외부시스템과연동 이를이용하여 real-time event notification and processing 시스템을구현함 C & JAVA ( JMS ) Table 과 Materialized view 의변경사항 detect Bookmark 기능을통해 reconnection/system shutdown 이후에도변경 Log 적용의연속성지원 Log2 Log 1 Log0 Transaction Log files
안정성 단일트랜잭션의안정성 - Log file 과 check point file 을이용하여메모리상주의휘발성극복 - 한응용프로그램에서 Disk commit / Buffer commit 을혼용사용 성능과안정성동시만족 Tx1 (Buffer Commit) Tx2 (Disk Commit) Tx3 (Buffer Commit)... 사용자응용프로그램 JDBC ODBC SQL92 메모리영역 빠른처리 -> 휘발성 Transaction Log Memory Buffer Background Log flusher 파일시스템 Disk I/O 발생 -> 성능저하 Transaction Log files 1 2 Checkpoint files
안정성 응용프로그램 HA(High Availability) 구성 - Replication 기능을이용하여 Data 이중화통한고가용성구축 사용자응용프로그램 복제 (Replication) 기능특징 - 다양한복제구성 -Table 단위또는 Database 단위복제 양방향또는단방향고속복제 (Replication) - 동기 / 비동기복제혼합지원 - DDL 복제지원 ( 컬럼삭제추가등..) - 온라인 Upgrade - 간편한복원 - Oracle DB 와연계하여확장성및가용성보장.
Replication configurations 3. Replication 고가용성 (Replication) 유연한구성 active-standby active-active ( 업무분산 ) N-way, 1:1, 1:N
Replication configurations Propagator 3. Replication 고가용성 (Replication) 네트워크 Bandwidth 병목 중앙서버 WAN 지역 1 지역 2 지역 3 LAN Branch Office
Asynchronous Replication 3. Replication 고가용성 (Replication) 커밋된트랜잭션은 Subscriber 에비동기적전달 매우빠른응답시간제공 트랜잭션처리량이많고대기시간이적은어플리케이션에적합
Synchronous Replication Return Receipt 3. Replication 고가용성 (Replication) Return Receipt 트랜잭션데이터는동기적방식으로응답신호 (Ack) 를요구 커밋된트랜잭션이커밋을수행한어플리케이션에응답하기전에반드시 Subscriber에전달되었음을보장
Synchronous Replication Return 2-safe 3. Replication 고가용성 (Replication) Return 2-safe 트랜잭션데이터는동기적방식으로응답신호 (Ack) 를요구 커밋된트랜잭션이커밋을수행한어플리케이션에응답하기전에반드시 Subscriber에전달되고 Log file에적용됨을보장
Replication Definition 3. Replication Server 1, Server 2 에동일한 Replication 정의문사용 create replication rep1 element e1 table mytab master masterds on server1 subscriber subscriberds on server2 element e2 table mytab master subscriberds on server2 subscriber masterds on server1; Ex1 ) Active Active (Table 레벨 ) Application server1 mytab Active Application server2 mytab Active create replication rep1 element e datastore master masterds on server1 Application server1 Replicate entire database server2 subscriber subscriberds on server2; Ex2) Active Standby (Database 레벨 ) Active Standby
장애발생시무중단복구예 하나의 Replication 정의문을 replication 대상이되는 MMDB 에동일하게적용함으로써 장애시 MMDB1 에서 MMDB2 를복사하여장애발생시서비스중단없이복원이신속하여 MTTR (Mean Time To Repair) 최소화 Application Application Application 서비스절체 Application MMDB1 MMDB2 MMDB1 MMDB2 Application 서비스가용 Application ttrepadmin -duplicate -from MMDB1 -host Server2 MMDB2 MMDB1 MMDB2
장애복원후 Data 자동복구 Master Catch-up Node 1 Node 2 Node 1 Node 2 TX 1 TX 2 TX 3 Failure on Node 1 TX 1 TX 2 TX 1 TX 2 TX 3 trapped in Node 1 TX 1 TX 2 TX 4 TX 5 Node 1 Node 2 Node 1 recovered and up TX 3 trapped in Node 1 Master catch-up TX 3 TX 4 TX 5
Overview Cache connect to Oracle 4. Cache Connect to Oracle 세계최고의 Disk 형 DBMS 인 Oracle Database 와세계최고의 In-Memory Database 인 을투명하게연동하여별도의개발없이두 DB 간의 Data Consistency 를보장 두제품간에제품레벨의 cross certification 이보증되므로시스템구축시타사 DB 간에발생할수있는 certification 모호성이최소화됨. 기검증된 의뛰어난성능과 Oracle Database 의대용량데이터처리의장점을모두수용 Applications Applications Applications Instantly Responsive Tightly Integrated Highly Scalable
4. Cache Connect to Oracle Strong point of Integration & Oracle 모든 DB Layer (Memory DB & Disk DB) 에대한무정지시스템구축가능 APP TT APP TT APP TT APP TT APP TT APP TT Automatic Failover 모든 MMDB 장애시에도서비스운영가능 Node1 Node2 Node1 Node2 Node1 Node2 RAC DB RAC DB RAC DB 통합된 DB 로써업무목적에맞는메모리 DB 와 Disk DB 의효율적인확장가능 (Scale-Out) - Memory DB 와 Disk DB 를분산하여각 DB 의사용목적에맞는 H/W capacity plan 이가능 소형 H/W Event Data 수집용 중. 소형 H/W 대용량트랜잭션 (OLTP) 용 대형 H/W 배치, 통계, DW 용 기록 data 유지 DB
Cache connect to Oracle 4. Cache Connect 과 Oracle to Oracle 연동 (Cache connect Option) 오라클테이블전체또는부분데이터를 Caching Read-only or updateable 양방향데이터전송 From to Oracle From Oracle to Asynch or Synch write-through 하나의오라클 DB 에다중 Data Store 가능 Replication option 과연동하여사용가능 Auto Aging, Load on Select 간단한설정, Oracle 반영성능보장 CREATE CACHE GROUP PremierUsers FROM CUSTOMER ( NAME VARCHAR2(100) NOT NULL, ADDR VARCHAR2(100) ) WHERE CUSTOMER.ORDER > 500;
Read-only Cache Groups 4. Cache Connect to Oracle 과 Oracle 연동 (Cache connect Option) Read-only Cache Groups 변경은허용되지않음 Application 은 에대한단일 connection 으로오라클의 SQL 을처리할수있음 (Pass-through 기능 ) Application Cache 오라클의변경데이터를 에자동으로 refresh Incremental refresh (time intervals) Full refresh Optionally, Autorefresh OFF Pass-through SQL for non-cached tables or updates Oracle DB READONLY Cache Group Auto-refresh updates from Oracle Read Only
Updatable Cache-Groups 4. Cache Connect to Oracle 과 Oracle 연동 (Cache connect Option) Synchronous WriteThrough (SWT) 트랜잭션은 Cache Group 과오라클데이터베이스에서동시에 Commit 됨 오라클과 Cache Group 에서 commit 이완료될때까지어플리케이션은기다림 Application Cache Asynchronous WriteThrough (AWT) 트랜잭션의변경사항을 Oracle 로비동기적으로전달 어플리케이션이변경사항의 commit 여부를기다리지않음. Auto-propagate updates to cached tables Pass-through SQL for non-cached tables WRITETHROUGH Cache Group Load once on creation Oracle DB Write Through
SQL PassThrough to Oracle 4. Cache Connect to Oracle Pass-Through 는어플리케이션이 을통해오라클에 SQL 을전송 캐시된테이블에서사용할수없는 SQL 을정의하고그 SQL 을오라클에전송 Cache 가오라클에대한연결을관리 Application Statements that can PassThrough Logic be handled in cache Statements that cannot be handled in cache are Cache Group passed through to Oracle Oracle DB
Reads Active Standby Pair Replication Node 1 Auto- Refresh Replication Node 2 Node 3 Node 4 Node 5 Node 1 Auto- Refresh Node 2 Oracle Reads Node 3 Node 4 Node 5 Oracle Application Reads to Repl. Oracle to Node 1 = Active Node 2 = Standby Nodes 3, 4, 5 optional Replication Node 3 Node 4 Node 5 After Failure Node 1 Reads Auto- Refresh Node 2 Oracle
과 Oracle 연동 - 조회성능개선예 과 Oracle 연동 (Cache connect Option) Oracle : Flight schedule 제품및가격 사용자인증정보 Reads Oracle Database: Flight reservation 주문정보 사용자전체정보
과 Oracle 연동 - 혼합트랜잭션성능개선예 Region 1 Region 2 과 Oracle 연동 (Cache connect Option) Oracle : 요금계산 온라인가입자 계좌잔고 Writes Reads Oracle Database: 전체가입자 전제요금정보 Message storage
+ Oracle 혼용사용예 Java Web Application 고부하업무 JDBC Application Web Clients 일반업무 JDBC Cache Connect To Oracle 기능을사용하여고부하의업무 Data 를 In-Memory Database 에위치 이러한구조의장점은다음과같습니다. 1. 빠른응답시간 WAS 최근 1 주일치 data 유지 2. Peak Time 시지연시간최소화 3. 전체시스템의여유율확보 Transparent/ bi-directional Database Data 누적 Periodical Batch Operation - 고부하성 workload 를 에서처리함으로써 Oracle DB 의자원이확보되어배치성마감작업을효과적으로수행 자주 access 되는 Data 를 에시간단위로 cache 가능하여 Memory 효율성증대 (ex: 최근일주일치 Data 만 위치하고, 그이외의 data 는 Oracle DB 에서조회 ) 은 WAS 단에위치할경우최고의응답시간을보장하지만 Database Tier 에도위치하여성능향상가능.
Proven in Real-Time Deployments 전세계에서가장많은 reference 를확보한검증된제품 Networks Telecom Wall Street Customer-Facing Applications Real-time billing Voice over IP Mobile Networks Value-added Services Revenue Assurance Network and QOS Management Authentication Order Matching Risk Management Real-time Analytics Call Centers Hosted CRM Dynamic personalization
7.0 Supported Platforms Platform HP-UX 11i and 11i v2 HP-UX 11i v2 HP Tru64 IBM AIX 5L 5.2 and 5.3 Microsoft Windows 2000, Windows XP, Windows 2003 Server MontaVista Linux CGE 4.0 Red Hat Enterprise Linux 3 and 4 Sun Solaris 8, 9, 10 Sun Solaris 10 SUSE Linux Enterprise Server 9, 10 Processor PA-RISC (32-bit and 64-bit) IA64 (32-bit and 64-bit) 64-bit POWER (32-bit and 64-bit) X86 (32-bit and 64-bit) X86 (32-bit and 64-bit) X86 (32-bit and 64-bit) Itanium2 (64-bit) Sparc (32-bit and 64-bit) x86 on AMD Opteron (32-bit*/64-bit) X86 (32-bit and 64-bit) Itanium2 (64-bit)