SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
www.informatik-aktuell.de
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 2/37
Oracle Core für Einsteiger:
InMemory Column Store
Martin Klier
Performing Databases GmbH
Mitterteich
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 3/37
Referent
● Martin Klier
● Lösungsarchitekt und
Datenbankspezialist
● Fachliche Schwerpunkte:
– Performanceoptimierung / Tuning
– hochverfügbare Systeme
– Architektur DBMS
● Linux seit 1997
● Oracle Database seit 2003
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 4/37
Referent
● Vorträge
● Kontakt: martin.klier@performing-db.com
● Weblog: http://www.usn-it.de
Regionalgruppen
Fachkonferenzen
April 2016
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 5/37
Performing Databases
● Spezialisten für Datenbanktechnik
– Konzeptberatung
– Architektur- und Systemplanung
– Lizenzierung
– Realisierung und Troubleshooting
● Kontakt
– Performing Databases GmbH
Wiesauer Straße 27
95666 Mitterteich
– Web: http://www.performing-databases.com
– Twitter: @PerformingDB
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 6/37
Ziele
● Wiederholung Basisarchitektur
● Row- und Column basierte Daten
● Systemarchitektur mit InMemory Column Store
● Funktionsweise
– Lesezugriffe
– Transaktionen und Konsistenz
● Einsatzszenarien und Optimierungen
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 7/37
Basics
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 8/37
TEMP
Architekturschema
(vereinfacht)
Listener
:1521
PMON
SGA
Server
Server
Buffer Cache
Shared Pool
Log Buffer
ARCnSMON
LGWR
DBWn
PGAs
CKPT
Server
Online
Redo
Logs
Archived
Redo
Logs
Tablespace Undo Tbs.
Blöcke
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 9/37
Rows & Columns
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 10/37
Row Data
ID NAME1 NAME2 STREET ZIP CITY
2 John Doe 2 Wilbury Way 12345 Wesley
3 Alice Allison 108 Agora Alley 23456 Amberg
4 Sally Salinger 17 Samson St. 34567 Salisbury
.. .. .. .. .. ..
.. .. .. .. .. ..
.. .. .. .. .. ..
36 .. .. .. .. ..
.. .. .. .. .. ..
57 Bob Bobson 42 Century Ct. 56789 Taccanooga
SELECT * … WHERE ID IN (3,36) ….
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 11/37
Row Data
ID NAME1 NAME2 STREET ZIP CITY
2 John Doe 2 Wilbury Way 12345 Wesley
3 Alice Allison 108 Agora Alley 23456 Amberg
4 Sally Salinger 17 Samson St. 34567 Salisbury
8 Bob Bobson 42 Century Ct. 56789 Taccanooga
Block / Buffer
Header / ITL
Row Store
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 12/37
TEMP
Lesevorgang Row
Listener
:1521
SGA
PGAs
Server
Tablespace
Blöcke
Sort,
Hash,
Merge
Shared Pool
select ... ;
Buffer Cache
„Buffer“
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 13/37
Lesevorgang Row
Listener
:1521
SGA
Server
Buffer Cache
Maximum
1,000,000 rows per second
by design.
(Tirthankar Lahiri, Oracle VP)
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 14/37
Buffer Cache Access
CBC 4F BH 1 BH 77
CBC 51 BH 99 BH 32
Chains
Buffer Headers
(references in Shared Pool)
Latches
Cache Buffer Chains: Is this block in the BC?
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 15/37
Buffer Cache Access
CBC 4F BH 1 BH 77
Session 1
Session 2 Same or diff. Buffer (Chain), same latch :(
Spin
Locks the chain and looks for a buffer
CBC 51 BH 99 BH 32
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 16/37
Rows & Columns
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 17/37
Columnar Data
ID NAME1 NAME2 STREET ZIP CITY
2 John Doe 2 Wilbury Way 12345 Wesley
3 Alice Allison 108 Agora Alley 23456 Amberg
4 Sally Salinger 17 Samson St. 34567 Salisbury
.. .. .. .. .. ..
.. .. .. .. .. ..
.. .. .. .. .. ..
36 .. .. .. .. ..
.. .. .. .. .. ..
57 Bob Bobson 42 Century Ct. 56789 Taccanooga
SELECT ID …. WHERE ZIP ….;
SELECT COUNT(*) …. WHERE ZIP ….;
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 18/37
Columnar Data
ID NAME1 NAME2 STREET ZIP CITY
2 John Doe 2 Wilbury Way 12345 Wesley
3 Alice Allison 108 Agora Alley 23456 Amberg
4 Sally Salinger 17 Samson St. 34567 Salisbury
.. .. .. .. .. ..
.. .. .. .. .. ..
IMCU
ID
2
3
4
..
..
ZIP
12345
23456
34567
..
..
City
Wesley
Amberg
Salisbury
..
..
ROWID
AABBCC
BBCCDD
DDEEFF
..
..
Column Compression Units (CU)
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 19/37
In-Memory Architecture
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 20/37
In-Memory Population
SGA
Tablespace
Blöcke
Buffer Cache
In-Memory Compression Unit (1MB)
In-Memory Area
IMCU- or
1MB pool
W002
W001
IMCO
Order-
Priority per table
● critical
● high
● none (=on demand ?)
● medium
● low
In-Memory
Coordinator
Process
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 21/37
In-Memory Data Change
SGA
Tablespace
Blöcke
Buffer Cache
In-Memory Area
SMU- or
64kB pool
Snapshot Metadata Unit (64k)
Server
x
IMCU
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 22/37
Lesevorgang Columnar
SGA
PGAs
Server
Tablespace
Blöcke
Sort,
Hash,
Merge
Buffer Cache
In-Memory Area
x
?
IMCU
SMU
Optimierungen!
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 23/37
In-Memory RePopulation
SGA
Tablespace
Blöcke
Buffer Cache
In-Memory Area
W002
W001
IMCO
When?
● Threshold per IMCU
● Trickle (constant)
x
IMCU
SMU
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 24/37
InMemory Area
● Geteilt in
– 1MB-Pool (IMCUs)
– 64k-Pool (SMUs)
● KEIN Least-Recently-Used-Mechanismus (LRU)
First come, first serve!
=> Denke: „Tablespace“ nicht „Cache“
In-Memory Area
IMCU SMU
IMCU- or
1MB pool
SMU- or
64kB pool
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 25/37
Using Column Store
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 26/37
With Or Without You
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 27/37
When and When Not
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 28/37
Operation Pushdown I
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 29/37
Operation Pushdown II
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 30/37
Optimierungen
● Vector Processing (Single Instruction Multiple Data SIMD)
z.B. Intel AVX / 256bit Register
Picture:Wikimedia
>1,000,000,000
rows per second
(Tirthankar Lahiri, Oracle VP)
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 31/37
Optimierungen
● Operation Pushdown: InMemory Scan (*)
(ähnlich Exadata Smart Scan)
– Prädikat-Prüfung im Column Store (*)
– Aggregation im Scan
– Bloom Filter im IMCU Scan (*)
● In-Memory Storage Index
(Auslassen unnötiger IMCUs bei In-Memory Scan)
● Predicate Optimization
(wird eine IMCUs ohnehin vollständig benötigt,
erfolgt auf ihr keine Prüfung des Prädikats)
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 32/37
Abschluß
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 33/37
Vorteile IM Column St.
● Schneller bei spaltenbasierten Auswertungen
● Optimizer nutzt „Shortcuts“ der Architektur
● Voll transparent, ideal für Mischbetrieb auf selbem
Datenbestand
OLTP OLAP
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 34/37
Nachteile IM Column St.
● Ressourcenbedarf
– RAM
– CPU für Compression
● Inhalt muss gepflegt / verwaltet werden
=> Advisor!
● Eingeschränkt deterministisch:
Nutzen stark abhängig von
– Workload
– Inhalt
– Zustand
● Skalierung im RAC ohne
Ausfallsicherheit (Nur auf Engineered Systems)
Know
yourneeds!
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 35/37
InMemory ist cool.
#FiveWordTechHorrors „InMemory solves all performance problems“
Cool reicht nicht.
UseCase muß passen.
@MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 36/37
Q & A
Download Präsentation und Whitepaper
http://www.performing-databases.com
Martin Klier – IT-Tage 2015 – Oracle InMemory Column Store

Weitere ähnliche Inhalte

Ähnlich wie Martin Klier – IT-Tage 2015 – Oracle InMemory Column Store

Rolle Rückwärts - Backported Features in Oracle Database 19c
Rolle Rückwärts - Backported Features in Oracle Database 19cRolle Rückwärts - Backported Features in Oracle Database 19c
Rolle Rückwärts - Backported Features in Oracle Database 19cMarkus Flechtner
 
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)Ulrike Schwinn
 
Praktische Erfahrungen mit den kleinen SPARC S7-2 Servern
Praktische Erfahrungen mit den kleinen SPARC S7-2 ServernPraktische Erfahrungen mit den kleinen SPARC S7-2 Servern
Praktische Erfahrungen mit den kleinen SPARC S7-2 ServernJomaSoft
 
DOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 Server
DOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 ServerDOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 Server
DOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 ServerJomaSoft
 
Zentrales Logging mit Elasticsearch
Zentrales Logging mit ElasticsearchZentrales Logging mit Elasticsearch
Zentrales Logging mit ElasticsearchSimonSchneider24
 
MySQL für Oracle DBA's
MySQL für Oracle DBA'sMySQL für Oracle DBA's
MySQL für Oracle DBA'sFromDual GmbH
 
Oracle 11g - Neuerungen im Überblick
Oracle 11g - Neuerungen im ÜberblickOracle 11g - Neuerungen im Überblick
Oracle 11g - Neuerungen im ÜberblickGFU Cyrus AG
 
Michael Wittig – IT-Tage 2015 – Datenbanken und Big Data: Datenbank am Limit ...
Michael Wittig – IT-Tage 2015 – Datenbanken und Big Data: Datenbank am Limit ...Michael Wittig – IT-Tage 2015 – Datenbanken und Big Data: Datenbank am Limit ...
Michael Wittig – IT-Tage 2015 – Datenbanken und Big Data: Datenbank am Limit ...Informatik Aktuell
 
Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)Kerstin Puschke
 
Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2panagenda
 
Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und HadoopRealtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und HadoopValentin Zacharias
 
Solr & Cassandra: Searching Cassandra with DataStax Enterprise
Solr & Cassandra: Searching Cassandra with DataStax EnterpriseSolr & Cassandra: Searching Cassandra with DataStax Enterprise
Solr & Cassandra: Searching Cassandra with DataStax EnterpriseDataStax Academy
 
Datenbank-Hausputz für Einsteiger
Datenbank-Hausputz für EinsteigerDatenbank-Hausputz für Einsteiger
Datenbank-Hausputz für EinsteigerMarkus Flechtner
 
OSDC 2012 | MySQL Cluster by Erkan Yanar
OSDC 2012 | MySQL Cluster by Erkan YanarOSDC 2012 | MySQL Cluster by Erkan Yanar
OSDC 2012 | MySQL Cluster by Erkan YanarNETWAYS
 
Wide-column Stores für Architekten (HBase, Cassandra)
Wide-column Stores für Architekten (HBase, Cassandra)Wide-column Stores für Architekten (HBase, Cassandra)
Wide-column Stores für Architekten (HBase, Cassandra)Andreas Buckenhofer
 
Microservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSMicroservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSRalf Ernst
 
Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)
Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)
Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)Ulrike Schwinn
 
Oracle vs. PostgreSQL - Unterschiede in 45 Minuten
Oracle vs. PostgreSQL - Unterschiede in 45 MinutenOracle vs. PostgreSQL - Unterschiede in 45 Minuten
Oracle vs. PostgreSQL - Unterschiede in 45 MinutenMarkus Flechtner
 
MySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterMySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterFromDual GmbH
 
MySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA'sMySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA'sFromDual GmbH
 

Ähnlich wie Martin Klier – IT-Tage 2015 – Oracle InMemory Column Store (20)

Rolle Rückwärts - Backported Features in Oracle Database 19c
Rolle Rückwärts - Backported Features in Oracle Database 19cRolle Rückwärts - Backported Features in Oracle Database 19c
Rolle Rückwärts - Backported Features in Oracle Database 19c
 
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
 
Praktische Erfahrungen mit den kleinen SPARC S7-2 Servern
Praktische Erfahrungen mit den kleinen SPARC S7-2 ServernPraktische Erfahrungen mit den kleinen SPARC S7-2 Servern
Praktische Erfahrungen mit den kleinen SPARC S7-2 Servern
 
DOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 Server
DOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 ServerDOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 Server
DOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 Server
 
Zentrales Logging mit Elasticsearch
Zentrales Logging mit ElasticsearchZentrales Logging mit Elasticsearch
Zentrales Logging mit Elasticsearch
 
MySQL für Oracle DBA's
MySQL für Oracle DBA'sMySQL für Oracle DBA's
MySQL für Oracle DBA's
 
Oracle 11g - Neuerungen im Überblick
Oracle 11g - Neuerungen im ÜberblickOracle 11g - Neuerungen im Überblick
Oracle 11g - Neuerungen im Überblick
 
Michael Wittig – IT-Tage 2015 – Datenbanken und Big Data: Datenbank am Limit ...
Michael Wittig – IT-Tage 2015 – Datenbanken und Big Data: Datenbank am Limit ...Michael Wittig – IT-Tage 2015 – Datenbanken und Big Data: Datenbank am Limit ...
Michael Wittig – IT-Tage 2015 – Datenbanken und Big Data: Datenbank am Limit ...
 
Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)
 
Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2
 
Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und HadoopRealtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
 
Solr & Cassandra: Searching Cassandra with DataStax Enterprise
Solr & Cassandra: Searching Cassandra with DataStax EnterpriseSolr & Cassandra: Searching Cassandra with DataStax Enterprise
Solr & Cassandra: Searching Cassandra with DataStax Enterprise
 
Datenbank-Hausputz für Einsteiger
Datenbank-Hausputz für EinsteigerDatenbank-Hausputz für Einsteiger
Datenbank-Hausputz für Einsteiger
 
OSDC 2012 | MySQL Cluster by Erkan Yanar
OSDC 2012 | MySQL Cluster by Erkan YanarOSDC 2012 | MySQL Cluster by Erkan Yanar
OSDC 2012 | MySQL Cluster by Erkan Yanar
 
Wide-column Stores für Architekten (HBase, Cassandra)
Wide-column Stores für Architekten (HBase, Cassandra)Wide-column Stores für Architekten (HBase, Cassandra)
Wide-column Stores für Architekten (HBase, Cassandra)
 
Microservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSMicroservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OS
 
Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)
Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)
Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)
 
Oracle vs. PostgreSQL - Unterschiede in 45 Minuten
Oracle vs. PostgreSQL - Unterschiede in 45 MinutenOracle vs. PostgreSQL - Unterschiede in 45 Minuten
Oracle vs. PostgreSQL - Unterschiede in 45 Minuten
 
MySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterMySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und Cluster
 
MySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA'sMySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA's
 

Martin Klier – IT-Tage 2015 – Oracle InMemory Column Store

  • 2.
  • 3. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 2/37 Oracle Core für Einsteiger: InMemory Column Store Martin Klier Performing Databases GmbH Mitterteich
  • 4. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 3/37 Referent ● Martin Klier ● Lösungsarchitekt und Datenbankspezialist ● Fachliche Schwerpunkte: – Performanceoptimierung / Tuning – hochverfügbare Systeme – Architektur DBMS ● Linux seit 1997 ● Oracle Database seit 2003
  • 5. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 4/37 Referent ● Vorträge ● Kontakt: martin.klier@performing-db.com ● Weblog: http://www.usn-it.de Regionalgruppen Fachkonferenzen April 2016
  • 6. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 5/37 Performing Databases ● Spezialisten für Datenbanktechnik – Konzeptberatung – Architektur- und Systemplanung – Lizenzierung – Realisierung und Troubleshooting ● Kontakt – Performing Databases GmbH Wiesauer Straße 27 95666 Mitterteich – Web: http://www.performing-databases.com – Twitter: @PerformingDB
  • 7. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 6/37 Ziele ● Wiederholung Basisarchitektur ● Row- und Column basierte Daten ● Systemarchitektur mit InMemory Column Store ● Funktionsweise – Lesezugriffe – Transaktionen und Konsistenz ● Einsatzszenarien und Optimierungen
  • 8. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 7/37 Basics
  • 9. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 8/37 TEMP Architekturschema (vereinfacht) Listener :1521 PMON SGA Server Server Buffer Cache Shared Pool Log Buffer ARCnSMON LGWR DBWn PGAs CKPT Server Online Redo Logs Archived Redo Logs Tablespace Undo Tbs. Blöcke
  • 10. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 9/37 Rows & Columns
  • 11. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 10/37 Row Data ID NAME1 NAME2 STREET ZIP CITY 2 John Doe 2 Wilbury Way 12345 Wesley 3 Alice Allison 108 Agora Alley 23456 Amberg 4 Sally Salinger 17 Samson St. 34567 Salisbury .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 36 .. .. .. .. .. .. .. .. .. .. .. 57 Bob Bobson 42 Century Ct. 56789 Taccanooga SELECT * … WHERE ID IN (3,36) ….
  • 12. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 11/37 Row Data ID NAME1 NAME2 STREET ZIP CITY 2 John Doe 2 Wilbury Way 12345 Wesley 3 Alice Allison 108 Agora Alley 23456 Amberg 4 Sally Salinger 17 Samson St. 34567 Salisbury 8 Bob Bobson 42 Century Ct. 56789 Taccanooga Block / Buffer Header / ITL Row Store
  • 13. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 12/37 TEMP Lesevorgang Row Listener :1521 SGA PGAs Server Tablespace Blöcke Sort, Hash, Merge Shared Pool select ... ; Buffer Cache „Buffer“
  • 14. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 13/37 Lesevorgang Row Listener :1521 SGA Server Buffer Cache Maximum 1,000,000 rows per second by design. (Tirthankar Lahiri, Oracle VP)
  • 15. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 14/37 Buffer Cache Access CBC 4F BH 1 BH 77 CBC 51 BH 99 BH 32 Chains Buffer Headers (references in Shared Pool) Latches Cache Buffer Chains: Is this block in the BC?
  • 16. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 15/37 Buffer Cache Access CBC 4F BH 1 BH 77 Session 1 Session 2 Same or diff. Buffer (Chain), same latch :( Spin Locks the chain and looks for a buffer CBC 51 BH 99 BH 32
  • 17. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 16/37 Rows & Columns
  • 18. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 17/37 Columnar Data ID NAME1 NAME2 STREET ZIP CITY 2 John Doe 2 Wilbury Way 12345 Wesley 3 Alice Allison 108 Agora Alley 23456 Amberg 4 Sally Salinger 17 Samson St. 34567 Salisbury .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 36 .. .. .. .. .. .. .. .. .. .. .. 57 Bob Bobson 42 Century Ct. 56789 Taccanooga SELECT ID …. WHERE ZIP ….; SELECT COUNT(*) …. WHERE ZIP ….;
  • 19. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 18/37 Columnar Data ID NAME1 NAME2 STREET ZIP CITY 2 John Doe 2 Wilbury Way 12345 Wesley 3 Alice Allison 108 Agora Alley 23456 Amberg 4 Sally Salinger 17 Samson St. 34567 Salisbury .. .. .. .. .. .. .. .. .. .. .. .. IMCU ID 2 3 4 .. .. ZIP 12345 23456 34567 .. .. City Wesley Amberg Salisbury .. .. ROWID AABBCC BBCCDD DDEEFF .. .. Column Compression Units (CU)
  • 20. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 19/37 In-Memory Architecture
  • 21. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 20/37 In-Memory Population SGA Tablespace Blöcke Buffer Cache In-Memory Compression Unit (1MB) In-Memory Area IMCU- or 1MB pool W002 W001 IMCO Order- Priority per table ● critical ● high ● none (=on demand ?) ● medium ● low In-Memory Coordinator Process
  • 22. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 21/37 In-Memory Data Change SGA Tablespace Blöcke Buffer Cache In-Memory Area SMU- or 64kB pool Snapshot Metadata Unit (64k) Server x IMCU
  • 23. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 22/37 Lesevorgang Columnar SGA PGAs Server Tablespace Blöcke Sort, Hash, Merge Buffer Cache In-Memory Area x ? IMCU SMU Optimierungen!
  • 24. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 23/37 In-Memory RePopulation SGA Tablespace Blöcke Buffer Cache In-Memory Area W002 W001 IMCO When? ● Threshold per IMCU ● Trickle (constant) x IMCU SMU
  • 25. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 24/37 InMemory Area ● Geteilt in – 1MB-Pool (IMCUs) – 64k-Pool (SMUs) ● KEIN Least-Recently-Used-Mechanismus (LRU) First come, first serve! => Denke: „Tablespace“ nicht „Cache“ In-Memory Area IMCU SMU IMCU- or 1MB pool SMU- or 64kB pool
  • 26. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 25/37 Using Column Store
  • 27. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 26/37 With Or Without You
  • 28. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 27/37 When and When Not
  • 29. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 28/37 Operation Pushdown I
  • 30. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 29/37 Operation Pushdown II
  • 31. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 30/37 Optimierungen ● Vector Processing (Single Instruction Multiple Data SIMD) z.B. Intel AVX / 256bit Register Picture:Wikimedia >1,000,000,000 rows per second (Tirthankar Lahiri, Oracle VP)
  • 32. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 31/37 Optimierungen ● Operation Pushdown: InMemory Scan (*) (ähnlich Exadata Smart Scan) – Prädikat-Prüfung im Column Store (*) – Aggregation im Scan – Bloom Filter im IMCU Scan (*) ● In-Memory Storage Index (Auslassen unnötiger IMCUs bei In-Memory Scan) ● Predicate Optimization (wird eine IMCUs ohnehin vollständig benötigt, erfolgt auf ihr keine Prüfung des Prädikats)
  • 33. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 32/37 Abschluß
  • 34. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 33/37 Vorteile IM Column St. ● Schneller bei spaltenbasierten Auswertungen ● Optimizer nutzt „Shortcuts“ der Architektur ● Voll transparent, ideal für Mischbetrieb auf selbem Datenbestand OLTP OLAP
  • 35. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 34/37 Nachteile IM Column St. ● Ressourcenbedarf – RAM – CPU für Compression ● Inhalt muss gepflegt / verwaltet werden => Advisor! ● Eingeschränkt deterministisch: Nutzen stark abhängig von – Workload – Inhalt – Zustand ● Skalierung im RAC ohne Ausfallsicherheit (Nur auf Engineered Systems) Know yourneeds!
  • 36. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 35/37 InMemory ist cool. #FiveWordTechHorrors „InMemory solves all performance problems“ Cool reicht nicht. UseCase muß passen.
  • 37. @MartinKlierDBA Oracle Core für Einsteiger: InMemory Column Store 36/37 Q & A Download Präsentation und Whitepaper http://www.performing-databases.com