2015( 제 8 회 ) 한국소프트웨어아키텍트대회 Database In-Memory 2015. 07. 16 한국오라클 김용한
Agenda 1 2 3 4 5 6 In-Memory Computing 개요주요요소기술 In-Memory의오해와실제적용시고려사항 12c In-Memory Option의소개결론 2
1. In-Memory Computing 개요 전통적인데이터처리방식 처리방식의특성과이슈 Disk<->Memory 의 I/O 병목 수동적 Disk Storage 시스템 ( 읽기와쓰기전용 ) 3. 처리 CPU 0. SQL H/W에비해낮은 S/W 관련기술의발전속도 Microprocessor I/O 4. 쓰기 Memory 1. 확인 ~ GB INPUT OUTPUT Block 2. 읽기 ALU REGISTER ARRAY INTERNAL BUS (ADDRESS, DATA) I/O I/O CONTROL ROM Memory RAM Database ~ TB 3
1. In-Memory Computing 개요 Enterprise Computing 환경의 Trend I/O 성능향상및 Cloud 환경으로확장 DRAM (GB) Cache 1990 s Disk 상에 Row 가아닌 Column 포맷데이터저장관리 예 ) Sybase IQ 가사용으로첫솔루션 I/O 병목 2000 s Smart Storage 를통한 I/O 처리량의감소 H/W 와 S/W 의통합된설비형솔루션소개 예 ) IBM Netezza, Oracle Exadata, MS PDW 등 DISK (TB) Data 2010 s DRAM 상에 Column 기반의데이터저장및처리를위한 In- Memory DBMS 출시 예 ) SAP HANA, Oracle In-Memory, IBM DB2 BLU 등 Private/Public Cloud 환경을위한 PaaS 및 On-premise 와 Hybrid Cloud 비즈니스활성화 Cloud 2015 ~ Cloud 의서비스에 In-Memory 기능의적용예정 4
1. In-Memory Computing 개요 In-Memory Computing 의정의 정의에대한다양한시각 애플리케이션을구동하는컴퓨터의메인메모리에 DB 데이터와같은주요데이터를저장하고처리하는컴퓨팅기술 저속의 Disk Drive 상에운영되는복잡한관계형데이터베이스가아닌전용서버의 DRAM 내에정보의저장및처리 CPU CPU CPU CPU 5
1. In-Memory Computing 개요 In-Memory Computing 의배경 H/W 의기술적한계와더낮아지는가격 장치별 Latency 와현황 1990 년대 vs. 2010 년의비교 장치 Latency 현황 CPU Intel ~ 1ns 고속연산 성능대신집적도 DRAM ~ 100ns 휘발성 가격하락지속 SSD ~ 100 Kns 저비용고성능 수명의제약 Disk ~ 1 Mns 저가형영구장치 성능향상없음. 6
2. 주요요소기술 In-Memory Computing 의요소기술 처리성능최적화를위한요소기술 고속의 Vector 연산 CPU Core 들의동시처리 SIMD Column Store Column 저장을통한대용량처리 Vector Operation 을통한성능향상 SIMD Compress 분할을통한효율성 병렬처리를통한성능향상 Partition & Parallel Column 으로압축저장 Compress 의효율성이슈 7
2. 주요요소기술 SIMD(Single Instruction & Multiple Data) 대량데이터의고속처리 하나의명령으로다중데이터를처리하는기술 Intel 의경우 Pentium Processor(1999) 부터도입 MMX(Multi-Media Extensions) 을시작으로 Pentium II 의 SSE(Streaming SMD Extensions) 가대표적 8
2. 주요요소기술 SIMD 의특성 SIMD 프로그래밍예와장단점 장점 대량 Data 를하나의연산 (Instruction) 으로처리 동일한값을대량 Data Point 에신속한처리 단점 모든알고리즘 / 처리가 Vector 화될수없음. 예 ) 프로세스흐름기반의처리 ( 결산 / 배부 ) Data Alignment 의제한 메모리누수가능성 Register 에데이터적재시정확한위치선정 대량 Register 파일로인한전력소모와 Chip 영역증가 Rotation 또는 3-Operand 는불가능 9
2. 주요요소기술 Column Store & Compression Column 저장을통한압축 제한된크기의 Memory 내에더많은데이터를관리하기위한방안 Data Page 내의압축된 Column 에대해서압축해제없이처리하여성능향상 Dictionary 를검색하여최종 Row 를생성 10
2. 주요요소기술 병렬처리를통한성능극대화 SIMD 를통한병렬처리아키텍처 CPU Cores 들이 Column 으로저장된데이터를스캔, 필터및 Join 등을동시에처리 11
3. In-Memory 의오해와실제 In-Memory Computing 의실상 가장중요한요소는 DBMS 최적화기 (Optimizer) 기존재하였던기술 공유 Memory 영역을확장한형태 새로운개념이아닌존재하였던기술 DBMS, JAVA JVM DBMS 성능향상에가장중요한요소 Memory Disk Tape 상용 In-Memory DBMS Altibase 와 Oracle TimesTen 등이출시한지 10 년이상 오해와진실 데이터보호를위한 Disk 필요 H/W 계층간의상쇄현상과유형에따라성능차이발생 벡터연산이아닌복잡한업무처리시성능저하 DBMS 의핵심은 Optimizer OS Firmware/Drivers 순수성능 실제성능 성능차이 12
4. 적용시고려사항 In-Memory Computing 의대상영역 적용업무대한정확한분석 문제와적용분야에대한정확한인식 예 ) Network, Parsing, 1회성처리등은제외 OLTP( 트랜잭션처리 ) 실시간트랜잭션데이터에대한 Reporting 데이터 Staging 을위한시간의최소화 분석시스템 성능을위한 Data Mart의제거또는최소화 13
4. 적용시고려사항 In-Memory Computing 의선정기준 적용타당성을위한점검우선순위 서비스가용성 가용성 안정성 메모리에적재시에도서비스지속가능 운영의안정성 DBMS 와 User Process 의분리를통한영향도최소화 처리시사용되는임시메모리영역의최소화 TCO 최소화 TCO 최소화 In-Memory 데이터에대한 Disk 중복저장제거 별도의추가 S/W 및처리프로세스의최소화 14
5. 12c In-Memory Option 의소개 Oracle 의 Storage 전략 투명한계층적데이터의저장및처리 각계층별특화된처리알고리즘과압축 메모리크기의제한극복 계층간애플리케이션의투명성 15
5. 12c In-Memory Option 의소개 12c In-Memory Option 의특징 Dual Format In-Memory Database 동일 Table에대해 Row와 Column In-Memory Format을모두유지 동시에활성화되고, 트랜잭션의일관성보장 OLTP는 Row Format 을이용 인덱스최소화를통한성능향상 분석과리포팅은새로운 Column Format 을이용 Disk 의 Persistency 는 Row Format 으로저장 16
5. 12c In-Memory Option 의소개 Oracle DBMS 에완전한통합 SGA 의확장과기존객체의다양한적용 Oracle DBMS 의아키텍처확장 SGA 내의새로운 In-Memory Area 유연하고다양한레벨의적용 Table, Partition, Mview 및 Column 17
5. 12c In-Memory Option 의소개 성능최적화를위한기술적용 Vector Processing 과 In-Memory Column Store Index SIMD 기반의고속 Vector Processing 대량데이터의고속처리 In-Memory Column Store Index 메모리의불필요한영역읽기제거 18
5. 12c In-Memory Option 의소개 OLTP 환경에서의 In-Memory 효과 질의성능을위한 Index 의제거 성능향상목적 성능향상목적의 Index 제거를통한 Storage 절감과인덱스관리최소화및성능향상 19
5. 12c In-Memory Option 의소개 다양한확장아키텍처의지원 Scale-out & Scale-up Scale-out 아키텍처 여러노드를통한병렬처리 Scale-up 아키텍처 최대 32 TB 의 Super-Computing SMP 20
5. 12c In-Memory Option 의소개 Oracle In-Memory : 구현의편리성 간단한활성화 애플리케이션의수정또는별도의 S/W 엔진의필요없이간단한설정을통 해활성화와구성 1. Oracle Parameter 에단순한 Memory 용량구성 inmemory_size = XXX GB 2. Memory 에적재할 Table 또는 Partition 을설정 alter table partition inmemory; 3. 불필요한 Index 의삭제 21
6. 결론 비즈니스를위한 In-Memory 의목표와가치 실시간기업으로의가속 고객의반응과시장에대한민첩성확보 신속한의사결정 분석시간의최소화를통한다수의다양한 통찰력생산 비즈니 스목표 데이터 적용의용이성 기존업무시스템의영향도최소화를통한빠른업무재개 평가 수집및 분석을위한데이터의생산으로인한중복 분석 업무지연의제거 과업무지연의제거 온라인트랜잭션데이터에대한즉시분석 실행 전략의 수립 TCO 절감 개발시간및인적자원의최소화 인덱스최소화및플랫폼에제약없는적용 을통한비용절감 업무연속성지원 장애시업무정상화를위한다양한안정장 치및기능을통한안정성및신뢰성확보 22