Preview of
Oracle Database 12c In-Memory Option
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
Oracle Database In-Memory Option Goals
100X Faster Queries: Real-Time Analytics
Get instantaneous query results
Querying OLTP database or data warehouse 2X Faster Transaction Processing
Trivial to Deploy for All Applications and Customers
Until Now You Choose One Format and Suffer Tradeoffs
Optimizing Transaction and Query Performance
Row Format Databases versus Column Format Databases
Row
Transactions run faster on row format
– Fast for processing few rows, many columns
– Example: Insert or query a sales order
Column
Analytics run faster on column format
– Fast for processing few columns, many rows
– Example: Report on sales totals by state
ORDER
SALES
SALES
S T A T E
BOTH row and column in-memory formats for same table
Simultaneously active and transactionally consistent
Analytics & reporting use New Column format
OLTP uses row format
Breakthrough: Dual Format In-Memory Database
Column Format Memory
Row Format
Memory
Analytics OLTP Sales Sales
Oracle In-Memory Columnar Technology
Memory
Pure Columnar
Pure in-memory format with no logging
Near zero overhead on changes
Even for OLTP
Uses memory-optimized compression
2x to 10x memory reduction
Data loaded in-memory for active tables or partitions - on startup or first access
For in-memory tables, >90% of memory will be used for column format
Row format needs little memory
Find Any Business Data in Sub-second
SIMD
Compare all values in 1 cycle
Compare all values
in 1 instruction Load
multiple State
values Vector Register In-Memory Column Store
State column
Sales
Example: Find all sales in state of CA
“CA”
>100X Faster
• Each CPU scans local in-memory columns
Scans use super fast SIMD vector instructions
Billions of rows/sec scan rate per CPU core
CPU
Scans and Combines Data from Multiple Tables
Sales
Stores
Type=outlet
Example: Find all sales in outlet stores
T Y P E
Storeid in 15,38,64
S T O R E I D
A M O U N T
Converts join processing into fast column scans
Joins up to 10x faster
Sum
Generate Reports In Sub-second
In-Memory Report Outline
Example: Show sales trends for footwear products in outlet stores
Stores
Products
Sales
Sales
Dynamically creates in-memory report outline
Report contents populated during fact scan
Reports up to 20x faster without predefined cubes
OLTP is Slowed Down by Analytic Indexes
Table
1 to 3 OLTP Indexes
5 to 15 Analytics
Indexes
Most Indexes in mixed-use OLTP (e.g. ERP) databases are only used for analytics
Indexes work well for known access patterns both
in-memory and on-disk
But every change to the table requires changing all analytic indexes – Slow!
Column Store Replaces Analytic Indexes
Table
1 to 3 OLTP Indexes
In-Memory Column Store replaces analytic indexes for tables that fit in memory
Removes analytic index overhead on changes
Both predefined and ad-hoc analytic queries run fast
Less tuning & admin needed
OLTP & batch often run 2x or more faster
In-Memory Column Store
Demonstration at Oracle Openworld 2013
Performance of columnar scan vs. row scan
- Both in memory
Extreme Capacity and Cost Effectiveness
Size not limited by memory
Data transparently
accessible across tiers
Each tier has specialized algorithms & compression
Capacity of Disk IOs of Flash
Speed of DRAM DISK
PCI FLASH DRAM
Cold Data Hottest Data
Active Data
Scale-Out In-Memory Database to Any Size
Scale-Out across servers to grow memory and CPUs
In-Memory queries are
parallelized across servers to access local column data
Direct-to-wire InfiniBand protocol speeds messaging
In Memory Column Store
In Memory Column Store In Memory
Column Store In Memory Column Store
Scale-Up for Maximum In-Memory Performance
Scale-Up on large SMPs
SMP scaling removes overhead of distributing queries across servers or coordinating transactions
Inter-processor bandwidth far exceeds any network
Oracle In-Memory is Trivial to Deploy
1. Configure Memory Capacity
inmemory_area = XXXX GB
2. Configure tables or partitions to be in memory
alter table | partition … inmemory;
3. Later Drop analytic indexes to speed up OLTP
Oracle In-Memory is Transparent to Applications
Existing Applications Just Run Faster
Full Functionality - No restrictions on SQL
Trivial to Implement - No migration of data or change of product Fully Compatible - All existing applications run unchanged DB as a Service Ready - Oracle Multitenant in-memory
Uniquely Achieves All In-Memory Benefits With No Application Changes
And All Other Apps that Support Oracle Database
Oracle In-Memory Delivers Extreme Availability
Pure In-Memory format does not change Oracle’s storage format, logging, backup, recovery, etc.
All Oracle’s mature availability technologies work transparently
Protection from all failures
Node, site, corruption, human error, change, etc.
RAC
ASM
RMAN
Data Guard & GoldenGate
• 100X Faster Queries: Real-Time Analytics
Querying OLTP database or data warehouse
• 2X Increase Transaction Processing Rates
• Less Management and Tuning
• Best of Memory, Flash, Disk
• Scale-Out and Scale-Up
• Extreme Availability
Trivial to Deploy for All Applications and Customers
Summary: Oracle Database In-Memory Option
APPENDIX
Relation of Database In-Memory Option to TimesTen and Exadata
Oracle Database In-Memory Products
Application
Application
Application
TimesTen In-Memory Database
Embedded in custom applications
Extreme low latency OLTP workloads (Microsecond Response Time)
Adaptive In-Memory Cache for Exalytics In-Memory Machine
Oracle Database In-Memory
Scalable In-Memory Database for any type of application workload
Combines best of DRAM, flash, disk
TimesTen In-Memory Database and Columnar
TimesTen is adding scale-out capabilities
– For both OLTP and analytics
TimesTen is adding columnar technologies to accelerate Analytics
– Core columnar processing engine is shared between Oracle and Timesten
– Embedded Analytics engine
TimesTen Grid
Scale-Out In-Memory DB
Oracle Database In-Memory Option on Exadata
• Exadata extends fast analytics from in-memory to flash and disk for highest capacity and lowest cost
• Scale-out intelligent flash optimized storage: >100GB/sec from flash
• Exadata DB as a Service In-Memory delivers consolidation, ultra fast performance, best agility, and lowest cost
• Highest performance applications run in-memory
• Applications that perform well today use cost-effective disk and flash
• Expect special optimizations for Database In-Memory on Exadata
• E.g. Fastest communication with InfiniBand Direct to Wire protocol
• Exadata is a standardized, pre-configured, pre-tuned, pre-tested platform for database in memory, on flash, and on disk
Platform of the Future
Platform Engineered for Database
Database Engineered for Cloud and Consolidation
Optimized for latest technologies
In-Memory Database
PCI Flash for fastest IO
Disk for highest capacity
Optimal compression at every tier
Fastest Communication
For all workloads – running together
Highest performance, lowest cost, most available, most scalable
Enterprise DBaaS