SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
Oracle 12c In Memory en action
Laurent Léturgez – Techsys
12 Novembre 2014
1
Oracle 12c In Memory
• Agenda
– Structure de données
– Opérations de chargement et de compression
– Algorithmes et optimisations
– Quelques résultats
– RAC, Multitenant, Exadata
– La concurrence
– Etude de ROI
09/02/2016 2
Oracle 12c In Memory
09/02/2016 3
Contexte :
- Base d’historique des ventes
- Deux schémas de 15Go environ
- Schéma 1 (TPCH_PART) : Fonctionnement classique
- Schéma 2 (TPCHIM_PART) : Fonctionnement in Memory
- Exécution de deux requêtes analytiques dans les deux schémas
Oracle 12c In Memory
• Agenda
– Structure de données
– Opérations de chargement et de compression
– Algorithmes et optimisations
– Quelques résultats
– RAC, Multitenant, Exadata
– La concurrence
– Etude de ROI
09/02/2016 4
Oracle 12c In Memory
09/02/2016 5
Volumétries
grandissantes
Besoin en
analyse de
données
Besoin de
rapidité
d’exécution
Oracle 12c In Memory
09/02/2016 6
Volumétries
grandissantes
Besoin en
analyse de
données
Besoin de
rapidité
d’exécution
Structure de
données adaptée
Oracle 12c In Memory
• Agenda
– Structure de données
– Opérations de chargement et de compression
– Algorithmes et optimisations
– Quelques résultats
– RAC, Multitenant, Exadata
– La concurrence
– Etude de ROI
09/02/2016 7
Oracle 12c In Memory
• Quoi de neuf avec Oracle 12c In Memory Column
Store ?
– Une nouvelle zone mémoire: « in Memory column store »
– Un nouveau format : les données sont organisées en
colonne dans cette zone mémoire
– Le format en ligne est conservé
09/02/2016 8
Oracle 12c In Memory
• In Memory column store : paramétrage
– Configuré en SGA par le paramètre
INMEMORY_SIZE (mini 100Mo)
– Ce n’est pas un cache mais un « magasin » … donc
pas d’algorithme de vieillissement (LRU/MRU)
09/02/2016 9
Oracle 12c In Memory
• In Memory column store : Constitution
• Pool IMCU : In Memory Compression Unit
– Contient les unités de compression (CU) : Données
formatées en colonne
• Pool SMU
– Stocke les Snapshot Metadata Unit (Equivalent des
undo pour l’IM)
09/02/2016 10
Oracle 12c In Memory
• L’IMCU structure de données centrale
– Unité d’allocation pour le stockage des données
d’une colonne
– Chaque colonne est stockée dans un espace
contigüe séparé des autres colonnes
09/02/2016 11
Oracle 12c In Memory
• L’IMCU structure de données centrale
09/02/2016 12
Marque
Karmeliet
Chimay
Chimay
Duvel
Chimay
Duvel
Westmalle
Duvel
Karmeliet
Clé Valeur
0 Chimay
1 Duvel
2 Karmeliet
3 Wesmalle
CU
Min = Chimay
Max = Westmalle
2
0
0
1
0
1
3
1
2
Dictionnaire :
Oracle 12c In Memory
• Agenda
– Structure de données
– Opérations de chargement et de compression
– Algorithmes et optimisations
– Quelques résultats
– RAC, Multitenant, Exadata
– La concurrence
– Etude de ROI
09/02/2016 13
Oracle 12c In Memory
• Provisionnement du pool In Memory
• Montée d’une table dans le pool In Memory
09/02/2016 14
SQL> ALTER SYSTEM SET INMEMORY_SIZE=10G SCOPE=SPFILE;
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> ALTER TABLE SALES INMEMORY;
SQL> ALTER TABLE SALES INMEMORY (PRODUCT_ID);
SQL> ALTER TABLE SALES NO INMEMORY;
SQL> ALTER TABLE SALES
2 > MODIFY PARTITION SALES_Q2_1998 INMEMORY;
Oracle 12c In Memory
• Priorité de montée en mémoire
– NONE < LOW < MEDIUM < HIGH < CRITICAL
– Détermine comment sont montées les colonnes en
mémoire
• NONE (Défaut) : montée lors du premier accès
• CRITICAL : montée immédiate ET au démarrage d’instance
09/02/2016 15
SQL> ALTER TABLE CUSTOMER INMEMORY PRIORITY CRITICAL;
SQL> ALTER TABLE CUSTOMER INMEMORY PRIORITY NONE;
Oracle 12c In Memory
09/02/2016 16
Volumétries
grandissantes
Besoin en
analyse de
données
Besoin de
rapidité
d’exécution
Structure de
données adaptée
Compression des
données
Oracle 12c In Memory
• Compression
– Objectif : réduire la volumétrie des données en mémoire
– Format IMCU adapté à une compression efficace
– Différents niveaux
• DML
• QUERY LOW (défaut)
• QUERY HIGH
• CAPACITY LOW
• CAPACITY HIGH
09/02/2016 17
SQL> ALTER TABLE CUSTOMER INMEMORY MEMCOMPRESS FOR QUERY HIGH;
SQL> ALTER TABLE ORDERS INMEMORY MEMCOMPRESS FOR DML;
Taux de
compression
Rapidité
d’exécution
des requêtes
Oracle 12c In Memory
09/02/2016 18
Volumétries
grandissantes
Besoin en
analyse de
données
Besoin de
rapidité
d’exécution
Structure de
données adaptée
Compression des
données
Algorithmes
adaptés
Oracle 12c In Memory
• Agenda
– Structure de données
– Opérations de chargement et de compression
– Algorithmes et optimisations
– Quelques résultats
– RAC, Multitenant, Exadata
– La concurrence
– Etude de ROI
09/02/2016 19
Oracle 12c In Memory
• Algorithmes et optimisations
–Objectifs
• Réduire les volumes traités (filtres)
• Réduire le nombre d’opérations (traitements à
plusieurs, utilisation du format adéquat)
• Limiter l’impact des volumes sur les
traitements (optimisation des jointures, des
opérations d’agrégation)
09/02/2016 20
Oracle 12c In Memory
• Algorithmes et optimisations
– Utilisation du format adéquat
09/02/2016 21
• Transactionnel et analytique en même temps
– Les traitements OLTP tirent bénéfice de l’organisation en lignes
– Les traitements analytiques tirent bénéfice de l’organisation en
colonnes
CBO
Oracle 12c In Memory
• Algorithmes et optimisations
– Réduire le nombre d’opérations
09/02/2016 22
Suppression des
index analytiques
(Bitmap)
Optimisation par le format
de l’IMCU qui intègre la
valeur minimale et maximale
Oracle 12c In Memory
• Si une transaction est enregistrée sur le buffer cache
– le pool IM est maintenu consistant par le Transaction
Manager
– L’image avant est maintenue dans le pool IM (SMU)
– La lecture consistante est gérée via le SCN … comme
auparavant
– La transaction est enregistrée dans les redo log … comme
auparavant
09/02/2016 23
Oracle 12c In Memory
• Traitement à plusieurs + filtrage
• Opérations SIMD (Single Instruction Multiple Data)
– Instructions CPU non spécifiques à Oracle
– Disponibles chez Intel dans les jeux d’instructions SSE (SSE,
SSE2, SSE3, SSE4), AVX, AVX2 et AVX-512
– Disponibles sur Power PC, Sparc (VIS & VIS2)
– Utilisation de registres vectoriels
– Permet de traiter plusieurs données en une seule
instruction
09/02/2016 24
Oracle 12c In Memory
• Opérations SIMD
– Registre de 128 octets (8 x 16 octets)
– 1024 opérations en mode scalaire = 128 op. en
SIMD
09/02/2016 25
Le format d’IMCU est
particuliérement adapté à
ces opérations
Oracle 12c In Memory
• Opérations SIMD
– Les nouveaux processeurs Intel Xeon E5-V3
intégreront les instructions AVX-512 avec des
registres de 512 octets
– Références
• http://www.intel.com/content/dam/www/public/us/en/documents/white-
papers/performance-xeon-e5-v3-advanced-vector-extensions-paper.pdf
• https://software.intel.com/sites/default/files/m/d/4/1/d/8/Intro_to_Intel_AVX.pdf
09/02/2016 26
Oracle 12c In Memory
• Filtrage et optimisation des jointures
• Filtre de Bloom
– Structure de données probabiliste (tableau de bits)
– Permet d’affirmer :
• Avec certitude, qu’une valeur ne fait pas partie d’un jeu de
données
• Sans certitude, qu’une valeur fait partie d’un jeu de données (faux
positifs qui diminuent avec la taille du jeu de données)
09/02/2016 27
Plus d’information sur la structure
- http://antognini.ch/papers/BloomFilters20080620.pdf
- http://fr.wikipedia.org/wiki/Filtre_de_Bloom
Oracle 12c In Memory
09/02/2016 28
• Filtres de bloom
– Utilisés depuis Oracle 10g notamment :
• Partition Pruning
• Optimisation des jointures par HASH
• Smart Scan Exadata (Elimination des données
sur le storage server)
Oracle 12c In Memory
09/02/2016 29
• Filtres de bloom sur Oracle 12c In Memory
– Optimisation des jointures en utilisant la structure de données IMCU
et les instructions SIMD
CL_ID NOM PAYS
1 Dupont FR
2 Gilmour UK
3 Martin FR
4 Schultz DE
5 Durand FR
6 Waters UK
7 Mason UK
8 Wright UK
9 Lindemann DE
10 Kruspe DE
CL_ID V_ID MONTANT
1 1 150
2 2 300
9 3 10
8 4 350
2 5 180
7 6 654
4 7 1524
4 8 354
9 9 136
10 5 789
…/… …/… …/…
SELECT c.NOM, v.V_ID
FROM CLIENT c, VENTE v
WHERE PAYS=‘UK’
AND v.MONTANT>150
AND C.CL_ID=V.CL_ID
Bloom Filter
CL_ID in
2,6,7,8
HASH
JOIN
4 Lignes 4 Lignes
Oracle 12c In Memory
• Optimisation des agrégations
• Transformation par double vecteur de clé
– Optimiser les agrégations de données (GROUP BY) en
tirant partie du format en colonne (VECTEUR)
– Transformation opérée par le CBO
– Optimisation des requêtes analytiques avec le format en
colonne
09/02/2016 30
Oracle 12c In Memory
• Transformation par double vecteur de clé
09/02/2016 31
MAG_ID LIEU
EN001 Englos
LE001 Leers
LE002 Lens
SE001 Seclin
V2001 V2
…/… …/…
PR_ID NOM
CHI1 Chimay
DUV1 Duvel
GRI1 Grimbergen
KAR1 Karmeliet
KWA1 Kwak
LEF1 Leffe
WES1 Westmalle
MAG
_ID
PR_ID MONTANT
SE001 GRI1 150
SE001 DUV1 300
LE002 KWA1 10
SE001 LEF1 350
V2001 WES1 180
LE001 GRI1 654
SE001 WES1 1524
EN001 KAR1 354
LE001 CHI1 136
V2001 WES1 789
…/… …/… …/…
0 3 1 2 4 5
1 0 2 4 5 6 3
CHI1 DUV1 GRI1 KAR1 KWA1 LEF1 WES1
EN001
LE001
LE002
SE001 150 1524
V2001 180
789
1- Création d’un vecteur de clés sur PR_ID
1- Création d’un vecteur de clés sur MAG_ID
2- Applications des
vecteurs de clés
(prédicat de jointure)
3 - Création d’un accumulateur des données IM
(à la volée)
4 – Calcul des agrégats
Oracle 12c In Memory
• Agenda
– Structure de données
– Opérations de chargement et de compression
– Algorithmes et optimisations
– Quelques résultats
– RAC, Multitenant, Exadata
– La concurrence
– Etude de ROI
09/02/2016 32
Oracle 12c In Memory
• Contexte #1
– Base d’environ 15Go
– Oracle Enterprise Linux 7 : 4 vCPU
– Extensions ssse3 (SIMD)
– Charge de type TPC-H : historique des ventes
• 22 requêtes analytiques
• Résultats exprimés en QphH (Queries per hour)
– Passe 1 : SGA : 22Go et INMEMORY_SIZE : 0 (Buffer Cache : 20Go),
PGA : 5Go
– Passe 2 : SGA : 22Go et INMEMORY_SIZE : 10Go (Buffer Cache : 10Go)
sans données montées en pool IM , PGA : 5Go.
– Passe 3 : SGA : 22Go et INMEMORY_SIZE : 10Go (Buffer Cache : 10Go)
avec données montées (Compression QUERY HIGH), PGA : 5Go.
09/02/2016 33
Oracle 12c In Memory
09/02/2016 34
0
5000
10000
15000
20000
25000
30000
R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22
TEMPS(1/100SECONDE)
REQUETE
Comparaison In Memory serveur local (Elasped time)
TPCH@10 BC 20Go - T2 TPCH@10 BC 10Go - T2 TPCH@10 IM 10Go - T2
Oracle 12c In Memory
• Contexte #2
– Base d’environ 50 Go
– Instance EC2 Amazon : 8 vCPU sous Redhat EL 7
– Extensions AVX
– Charge de type TPC-H : historique des ventes
• 22 requêtes analytiques
• Résultats exprimés en en QphH (Queries per hour)
– Passe 1 : SGA : 55Go et INMEMORY_SIZE : 22,5 Go (Buffer Cache :
10Go) sans données montées en pool IM, PGA : 5Go.
– Passe 2 : SGA : 55Go et INMEMORY_SIZE : 22,5 Go (Buffer Cache :
10Go) avec données montées (Compression QUERY HIGH), PGA :
5Go.
09/02/2016 35
Oracle 12c In Memory
09/02/2016 36
0
10000
20000
30000
40000
50000
60000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Comparaison In Memory Amazon EC2 (Elasped time)
TPCH@30 BC (AWS 55Go SGA + 22,5Go IM) TPCH@30 IM (AWS 55Go SGA + 22,5Go IM)
Oracle 12c In Memory
• Résultats
09/02/2016 37
Oracle 12c In Memory
• Agenda
– Structure de données
– Opérations de chargement et de compression
– Algorithmes et optimisations
– Quelques résultats
– RAC, Multitenant, Exadata
– La concurrence
– Etude de ROI
09/02/2016 38
Oracle 12c In Memory
• RAC
– Chaque nœud dispose de son pool IM
– Les objets sont automatiquement distribués sur
tous les nœuds
– La distribution est gérée au niveau segment
(TABLE, PARTITION, SOUS PARTITION)
– Les requêtes peuvent être parallélisées sur tous
les nœuds pour obtenir des données locales
09/02/2016 39
SQL> ALTER TABLE CUSTOMER INMEMORY DISTRIBUTE AUTO;
SQL> ALTER TABLE SALES INMEMORY DISTRIBUTE BY PARTITION;
Oracle 12c In Memory
• Multitenant
– Par défaut, les pluggable databases (PDB) héritent
de la configuration du conteneur root
– La taille du pool IM est configurable par PDB
– Le surprovisionnement est possible
09/02/2016 40
Oracle 12c In Memory
• Ai-je encore besoin de mon Exadata ?
– Exadata étend les données analytiques au cache
Flash et aux disques de l’Exadata
– Bénéfice du Smart Scan
– Sur Exadata les IMCU sont copiés sur les autres
computes nodes afin d’assurer la tolérance de
panne
09/02/2016 41
In Memory ne remplace
pas Exadata, il en augmente
la puissance
Oracle 12c In Memory
• Agenda
– Structure de données
– Opérations de chargement et de compression
– Algorithmes et optimisations
– Quelques résultats
– RAC, Multitenant, Exadata
– La concurrence
– Etude de ROI
09/02/2016 42
Oracle 12c In Memory
• Combien ça coûte ?
– Option de l’Enterprise Edition
– 23 000$ / CPU Oracle (2 cores Intel) soit environ 18400€
… non négocié par votre partenaire
• Vous trouvez ça cher ?
• Qui a dit ? : « Nous reconnaissons que notre technologie est
plus chère qu’Oracle »
• Qui a dit ? : « Nous assumons n’accorder aucune réduction à
nos produits, contrairement aux usages en France »
09/02/2016 43
Franck Cohen
Président EMEA - SAP
Franck Cohen
Président EMEA - SAP
Source : http://www.silicon.fr/usf-sap-hana-trop-cher-89969.html
Oracle 12c In Memory
• SAP Hana
– Nécessite une appliance dédiée supportée par HANA (Dell, IBM etc.)
– Appliances limitées par la DRAM (http://scn.sap.com/docs/DOC-
52522#jive_content_id_Supported_Hardware_Platforms_RHEL_for_SAP_HANA_Single_Node_ )
– SAP HANA utilise deux caches (lignes et colonnes)
– Les opérations de fusions des données de caches (automatiques)
peuvent s’avérer problématiques lors de forte activité transactionnelle
(http://scn.sap.com/community/developer-center/hana/blog/2014/06/08/oltp-performace-tunning-
of-column-table-in-sap-hana)
“…/…
Two segments of data in different store format will be processed and the calculator always switches
between column engine and row engine, which results in bad performance. We recommend doing a
manual merge when data in Delta area is large enough or after executing sequences of transactions.
…/…”
– Nécessité de réécrire les applications et revoir les middleware
09/02/2016 44
Oracle 12c In Memory
• SAP Hana
– Coûts liés à l’OPEX : nouvelle équipe, formation du
personnel, nouvelles procédures etc.
– Coûts liés au CAPEX : nouveau hardware, nouveaux
logiciels
– Haute disponibilité via cluster « Shared Nothing »
• Réplication du stockage et des systèmes
• Architecture complexe
– Serveur de noms MASTER ou SLAVE : la topologie du cluster
– Serveur d’indexation WORKER ou STANDBY : contient les datastores et traite
l’information
– Serveur de statistiques : collecte les informations de statut, performance et
consommation ressources
• Rôle et nombre de serveurs difficilement interopérables09/02/2016 45
Oracle 12c In Memory
• SQL Server 2014 : OLTP In Memory Optimization
– Optimisation pour l’OLTP
– Pool In Memory limité à 250 Go (http://msdn.microsoft.com/en-
us/library/dn170449.aspx)
– De nombreuses limitations dans la gestion des transactions
sur les tables InMemory (cf. http://msdn.microsoft.com/en-
us/library/dn133169.aspx, partie Limitations)
• Nécessité de réécrire une partie du code
09/02/2016 46
Oracle 12c In Memory
• IBM DB2 10.5 With BLU Acceleration
- Les tables sont organisées en ligne OU en colonne
- L’utilisation colonne + ligne (shadow tables) utilise un
mécanisme de réplication basé sur IBM InfoSphere CDC
(Réplication)
- Solution complexe à mettre en œuvre
- Solution nécessitant de nombreux produits (Information Server,
Replication Server, Access Server, et Management Console)
- Utilise un stockage sur SSD mais pas en DRAM
09/02/2016 47
Oracle 12c In Memory
• Agenda
– Structure de données
– Opérations de chargement et de compression
– Algorithmes et optimisations
– Quelques résultats
– RAC, Multitenant, Exadata
– La concurrence
– Etude de ROI
09/02/2016 48
Oracle 12c In Memory
• ROI : Contexte
– Application Oracle déjà en place sur EE + Partitionnement
– Estimation de coût en €/QphH
– Achat de 4 CPUs In Memory (8 cores Intel).
– Base de travail : test sur EC2 Amazon (plus représentatif)
– Investissement :
• Licences : 4 x 18 400€ = 73600 €
• Prestation d’accompagnement (5 à 10j) : 9000€
• 0 Formation, 0 DBA en plus
09/02/2016 49
Economie de : 201,84 € par QphH
Amortissement ≈ 409j ≈ 1,1 année
QphH@30g
€/QphH
(Base de location AWS :
17500€/3ans)
TPCH@30 BC (AWS EC2) 61,06 286,60
TPCH@30 IM (AWS EC2) 206,47 84,76
Oracle 12c In Memory
• Cas d’utilisation
– Batch de calcul des approvisionnements magasins
• Intégration des données de Stock
• Intégration de l’historique des ventes
• Intégration des offres promotionnelles
– Allongement de la durée (Criticité de fin de traitements)
– Problème dans l’approvisionnement des magasins
– Avec In Memory column Store
• Le batch est réduit de 3h
• Les colis partent à temps
• Les magasins sont approvisionnés à l’heure
09/02/2016 50
Oracle 12c in memory en action
CONCLUSION
Emmanuel Docquois – Ingénieur Avant Vente
09/02/2016 52
@techsys_fr

Contenu connexe

Tendances

Concepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupérationConcepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupérationSoukaina Boujadi
 
Paris Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearch
Paris Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearchParis Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearch
Paris Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearchMourad DACHRAOUI
 
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Ippon
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQLFrederic Descamps
 
Les bonnes pratiques pour migrer d'Oracle vers Postgres
Les bonnes pratiques pour migrer d'Oracle vers PostgresLes bonnes pratiques pour migrer d'Oracle vers Postgres
Les bonnes pratiques pour migrer d'Oracle vers PostgresEDB
 
Presentation of Oracle database products for Beginners
Presentation of Oracle database products for BeginnersPresentation of Oracle database products for Beginners
Presentation of Oracle database products for Beginnersyazidaguedal
 
Haute disponibilité my sql avec group réplication
Haute disponibilité my sql avec group réplicationHaute disponibilité my sql avec group réplication
Haute disponibilité my sql avec group réplicationFrederic Descamps
 
Jeudis du Libre - MySQL comme Document Store
Jeudis du Libre - MySQL comme Document StoreJeudis du Libre - MySQL comme Document Store
Jeudis du Libre - MySQL comme Document StoreFrederic Descamps
 
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniMHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniOlivier DASINI
 
Stockage et analyse temps réel d'événements avec Riak chez Booking.com
Stockage et analyse temps réel d'événements avec Riak chez Booking.comStockage et analyse temps réel d'événements avec Riak chez Booking.com
Stockage et analyse temps réel d'événements avec Riak chez Booking.comDamien Krotkine
 
Administration oracle7
Administration oracle7Administration oracle7
Administration oracle7Lucian Carabet
 
Delta Lake, un vernis pour parquet
Delta Lake, un vernis pour parquetDelta Lake, un vernis pour parquet
Delta Lake, un vernis pour parquetAlban Phélip
 
Le futur d'apache cassandra
Le futur d'apache cassandraLe futur d'apache cassandra
Le futur d'apache cassandraDuyhai Doan
 
Apache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésApache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésRomain Hardouin
 
Comment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesComment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesEDB
 
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeursMySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeursFrederic Descamps
 
Réplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateRéplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateMor THIAM
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingLilia Sfaxi
 

Tendances (20)

Concepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupérationConcepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupération
 
Paris Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearch
Paris Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearchParis Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearch
Paris Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearch
 
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQL
 
Les bonnes pratiques pour migrer d'Oracle vers Postgres
Les bonnes pratiques pour migrer d'Oracle vers PostgresLes bonnes pratiques pour migrer d'Oracle vers Postgres
Les bonnes pratiques pour migrer d'Oracle vers Postgres
 
Presentation of Oracle database products for Beginners
Presentation of Oracle database products for BeginnersPresentation of Oracle database products for Beginners
Presentation of Oracle database products for Beginners
 
Haute disponibilité my sql avec group réplication
Haute disponibilité my sql avec group réplicationHaute disponibilité my sql avec group réplication
Haute disponibilité my sql avec group réplication
 
Jeudis du Libre - MySQL comme Document Store
Jeudis du Libre - MySQL comme Document StoreJeudis du Libre - MySQL comme Document Store
Jeudis du Libre - MySQL comme Document Store
 
Oracle Cluster Rac
Oracle Cluster RacOracle Cluster Rac
Oracle Cluster Rac
 
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniMHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
 
Stockage et analyse temps réel d'événements avec Riak chez Booking.com
Stockage et analyse temps réel d'événements avec Riak chez Booking.comStockage et analyse temps réel d'événements avec Riak chez Booking.com
Stockage et analyse temps réel d'événements avec Riak chez Booking.com
 
Administration oracle7
Administration oracle7Administration oracle7
Administration oracle7
 
Delta Lake, un vernis pour parquet
Delta Lake, un vernis pour parquetDelta Lake, un vernis pour parquet
Delta Lake, un vernis pour parquet
 
Le futur d'apache cassandra
Le futur d'apache cassandraLe futur d'apache cassandra
Le futur d'apache cassandra
 
Apache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésApache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalités
 
Comment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesComment sauvegarder correctement vos données
Comment sauvegarder correctement vos données
 
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeursMySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs
 
Webinar Degetel DataStax
Webinar Degetel DataStaxWebinar Degetel DataStax
Webinar Degetel DataStax
 
Réplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateRéplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden Gate
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 

En vedette

tow nodes Oracle 12c RAC on virtualbox
tow nodes Oracle 12c RAC on virtualboxtow nodes Oracle 12c RAC on virtualbox
tow nodes Oracle 12c RAC on virtualboxjustinit
 
SQL Monitoring in Oracle Database 12c
SQL Monitoring in Oracle Database 12cSQL Monitoring in Oracle Database 12c
SQL Monitoring in Oracle Database 12cTanel Poder
 
Oracle 12c r1 installation on solaris 11.1
Oracle 12c r1 installation on solaris 11.1Oracle 12c r1 installation on solaris 11.1
Oracle 12c r1 installation on solaris 11.1Laurent Leturgez
 
Ukoug15 SIMD outside and inside Oracle 12c (12.1.0.2)
Ukoug15 SIMD outside and inside Oracle 12c (12.1.0.2)Ukoug15 SIMD outside and inside Oracle 12c (12.1.0.2)
Ukoug15 SIMD outside and inside Oracle 12c (12.1.0.2)Laurent Leturgez
 
Oracle Database In-Memory Option in Action
Oracle Database In-Memory Option in ActionOracle Database In-Memory Option in Action
Oracle Database In-Memory Option in ActionTanel Poder
 
HBase Status Report - Hadoop Summit Europe 2014
HBase Status Report - Hadoop Summit Europe 2014HBase Status Report - Hadoop Summit Europe 2014
HBase Status Report - Hadoop Summit Europe 2014larsgeorge
 
Modern Linux Performance Tools for Application Troubleshooting
Modern Linux Performance Tools for Application TroubleshootingModern Linux Performance Tools for Application Troubleshooting
Modern Linux Performance Tools for Application TroubleshootingTanel Poder
 
How oracle 12c flexes its muscles against oracle 11g r2 final
How oracle 12c flexes its muscles against oracle 11g r2 finalHow oracle 12c flexes its muscles against oracle 11g r2 final
How oracle 12c flexes its muscles against oracle 11g r2 finalAjith Narayanan
 
SQL in the Hybrid World
SQL in the Hybrid WorldSQL in the Hybrid World
SQL in the Hybrid WorldTanel Poder
 
Oracle 12c SQL: Date Ranges
Oracle 12c SQL: Date RangesOracle 12c SQL: Date Ranges
Oracle 12c SQL: Date RangesStew Ashton
 
Data Pipelines in Hadoop - SAP Meetup in Tel Aviv
Data Pipelines in Hadoop - SAP Meetup in Tel Aviv Data Pipelines in Hadoop - SAP Meetup in Tel Aviv
Data Pipelines in Hadoop - SAP Meetup in Tel Aviv larsgeorge
 
Oracle 12c Automatic Dynamic Sampling
Oracle 12c Automatic Dynamic SamplingOracle 12c Automatic Dynamic Sampling
Oracle 12c Automatic Dynamic SamplingIgor Usoltsev
 
How to Upgrade Hundreds or Thousands of Databases
How to Upgrade Hundreds or Thousands of DatabasesHow to Upgrade Hundreds or Thousands of Databases
How to Upgrade Hundreds or Thousands of DatabasesGuatemala User Group
 
Upgrade/Migrate to Oracle 12c: Live and Uncensored!
Upgrade/Migrate to Oracle 12c: Live and Uncensored!Upgrade/Migrate to Oracle 12c: Live and Uncensored!
Upgrade/Migrate to Oracle 12c: Live and Uncensored!Guatemala User Group
 
SQL-on-Hadoop Tutorial
SQL-on-Hadoop TutorialSQL-on-Hadoop Tutorial
SQL-on-Hadoop TutorialDaniel Abadi
 
Non-Stop Hadoop for Hortonworks
Non-Stop Hadoop for Hortonworks Non-Stop Hadoop for Hortonworks
Non-Stop Hadoop for Hortonworks Hortonworks
 
Connecting Hadoop and Oracle
Connecting Hadoop and OracleConnecting Hadoop and Oracle
Connecting Hadoop and OracleTanel Poder
 
Oracle 12c Multi Process Multi Threaded
Oracle 12c Multi Process Multi ThreadedOracle 12c Multi Process Multi Threaded
Oracle 12c Multi Process Multi ThreadedMarkus Flechtner
 

En vedette (20)

tow nodes Oracle 12c RAC on virtualbox
tow nodes Oracle 12c RAC on virtualboxtow nodes Oracle 12c RAC on virtualbox
tow nodes Oracle 12c RAC on virtualbox
 
SQL Monitoring in Oracle Database 12c
SQL Monitoring in Oracle Database 12cSQL Monitoring in Oracle Database 12c
SQL Monitoring in Oracle Database 12c
 
Hanganalyze presentation
Hanganalyze presentationHanganalyze presentation
Hanganalyze presentation
 
Oracle 12c r1 installation on solaris 11.1
Oracle 12c r1 installation on solaris 11.1Oracle 12c r1 installation on solaris 11.1
Oracle 12c r1 installation on solaris 11.1
 
Ukoug15 SIMD outside and inside Oracle 12c (12.1.0.2)
Ukoug15 SIMD outside and inside Oracle 12c (12.1.0.2)Ukoug15 SIMD outside and inside Oracle 12c (12.1.0.2)
Ukoug15 SIMD outside and inside Oracle 12c (12.1.0.2)
 
Oracle Database In-Memory Option in Action
Oracle Database In-Memory Option in ActionOracle Database In-Memory Option in Action
Oracle Database In-Memory Option in Action
 
HBase Status Report - Hadoop Summit Europe 2014
HBase Status Report - Hadoop Summit Europe 2014HBase Status Report - Hadoop Summit Europe 2014
HBase Status Report - Hadoop Summit Europe 2014
 
Modern Linux Performance Tools for Application Troubleshooting
Modern Linux Performance Tools for Application TroubleshootingModern Linux Performance Tools for Application Troubleshooting
Modern Linux Performance Tools for Application Troubleshooting
 
How oracle 12c flexes its muscles against oracle 11g r2 final
How oracle 12c flexes its muscles against oracle 11g r2 finalHow oracle 12c flexes its muscles against oracle 11g r2 final
How oracle 12c flexes its muscles against oracle 11g r2 final
 
SQL in the Hybrid World
SQL in the Hybrid WorldSQL in the Hybrid World
SQL in the Hybrid World
 
Oracle 12c SQL: Date Ranges
Oracle 12c SQL: Date RangesOracle 12c SQL: Date Ranges
Oracle 12c SQL: Date Ranges
 
Data Pipelines in Hadoop - SAP Meetup in Tel Aviv
Data Pipelines in Hadoop - SAP Meetup in Tel Aviv Data Pipelines in Hadoop - SAP Meetup in Tel Aviv
Data Pipelines in Hadoop - SAP Meetup in Tel Aviv
 
Oracle 12c Automatic Dynamic Sampling
Oracle 12c Automatic Dynamic SamplingOracle 12c Automatic Dynamic Sampling
Oracle 12c Automatic Dynamic Sampling
 
Oracle 12 Upgrade
Oracle 12 UpgradeOracle 12 Upgrade
Oracle 12 Upgrade
 
How to Upgrade Hundreds or Thousands of Databases
How to Upgrade Hundreds or Thousands of DatabasesHow to Upgrade Hundreds or Thousands of Databases
How to Upgrade Hundreds or Thousands of Databases
 
Upgrade/Migrate to Oracle 12c: Live and Uncensored!
Upgrade/Migrate to Oracle 12c: Live and Uncensored!Upgrade/Migrate to Oracle 12c: Live and Uncensored!
Upgrade/Migrate to Oracle 12c: Live and Uncensored!
 
SQL-on-Hadoop Tutorial
SQL-on-Hadoop TutorialSQL-on-Hadoop Tutorial
SQL-on-Hadoop Tutorial
 
Non-Stop Hadoop for Hortonworks
Non-Stop Hadoop for Hortonworks Non-Stop Hadoop for Hortonworks
Non-Stop Hadoop for Hortonworks
 
Connecting Hadoop and Oracle
Connecting Hadoop and OracleConnecting Hadoop and Oracle
Connecting Hadoop and Oracle
 
Oracle 12c Multi Process Multi Threaded
Oracle 12c Multi Process Multi ThreadedOracle 12c Multi Process Multi Threaded
Oracle 12c Multi Process Multi Threaded
 

Similaire à Oracle 12c in memory en action

Deep Dive Performance , le In-Memory dans SQL Server
Deep Dive Performance , le In-Memory dans SQL ServerDeep Dive Performance , le In-Memory dans SQL Server
Deep Dive Performance , le In-Memory dans SQL ServerMicrosoft
 
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...Ippon
 
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnelsUSI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnelsJoseph Glorieux
 
Distributed computing with Spark 2.x
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.xDr Hajji Hicham
 
CV - Database Administrator ( French )
CV - Database Administrator ( French )CV - Database Administrator ( French )
CV - Database Administrator ( French )Franck VICTORIA
 
Presentation intis 2017 version27112017
Presentation intis 2017 version27112017Presentation intis 2017 version27112017
Presentation intis 2017 version27112017Dr Hajji Hicham
 
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...Paris Open Source Summit
 
OSA02 - Pas de transactionnel haute performance sans un couple machine logici...
OSA02 - Pas de transactionnel haute performance sans un couple machine logici...OSA02 - Pas de transactionnel haute performance sans un couple machine logici...
OSA02 - Pas de transactionnel haute performance sans un couple machine logici...Nicolas Desachy
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.pptIdriss22
 
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010JUG Lausanne
 
Principes Relationnels et Concepts Oracle
Principes Relationnelset Concepts OraclePrincipes Relationnelset Concepts Oracle
Principes Relationnels et Concepts Oraclewebreaker
 
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]IBM France PME-ETI
 
Présentation/Atelier oxya
Présentation/Atelier oxyaPrésentation/Atelier oxya
Présentation/Atelier oxyaFujitsu France
 
Future of data center french
Future of data center frenchFuture of data center french
Future of data center frenchaditya panwar
 
Future of data center french
Future of data center frenchFuture of data center french
Future of data center frenchaditya panwar
 
20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessingPierre-Marie Brunet
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB MongoDB
 
Dba oracle-v1
Dba oracle-v1Dba oracle-v1
Dba oracle-v1infcom
 

Similaire à Oracle 12c in memory en action (20)

Deep Dive Performance , le In-Memory dans SQL Server
Deep Dive Performance , le In-Memory dans SQL ServerDeep Dive Performance , le In-Memory dans SQL Server
Deep Dive Performance , le In-Memory dans SQL Server
 
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
 
Fusion io
Fusion ioFusion io
Fusion io
 
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnelsUSI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
 
Distributed computing with Spark 2.x
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.x
 
CV - Database Administrator ( French )
CV - Database Administrator ( French )CV - Database Administrator ( French )
CV - Database Administrator ( French )
 
Presentation intis 2017 version27112017
Presentation intis 2017 version27112017Presentation intis 2017 version27112017
Presentation intis 2017 version27112017
 
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
 
Reshaping the data center v5
Reshaping the data center v5Reshaping the data center v5
Reshaping the data center v5
 
OSA02 - Pas de transactionnel haute performance sans un couple machine logici...
OSA02 - Pas de transactionnel haute performance sans un couple machine logici...OSA02 - Pas de transactionnel haute performance sans un couple machine logici...
OSA02 - Pas de transactionnel haute performance sans un couple machine logici...
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.ppt
 
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010
 
Principes Relationnels et Concepts Oracle
Principes Relationnelset Concepts OraclePrincipes Relationnelset Concepts Oracle
Principes Relationnels et Concepts Oracle
 
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
 
Présentation/Atelier oxya
Présentation/Atelier oxyaPrésentation/Atelier oxya
Présentation/Atelier oxya
 
Future of data center french
Future of data center frenchFuture of data center french
Future of data center french
 
Future of data center french
Future of data center frenchFuture of data center french
Future of data center french
 
20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
 
Dba oracle-v1
Dba oracle-v1Dba oracle-v1
Dba oracle-v1
 

Oracle 12c in memory en action

  • 1. Oracle 12c In Memory en action Laurent Léturgez – Techsys 12 Novembre 2014 1
  • 2. Oracle 12c In Memory • Agenda – Structure de données – Opérations de chargement et de compression – Algorithmes et optimisations – Quelques résultats – RAC, Multitenant, Exadata – La concurrence – Etude de ROI 09/02/2016 2
  • 3. Oracle 12c In Memory 09/02/2016 3 Contexte : - Base d’historique des ventes - Deux schémas de 15Go environ - Schéma 1 (TPCH_PART) : Fonctionnement classique - Schéma 2 (TPCHIM_PART) : Fonctionnement in Memory - Exécution de deux requêtes analytiques dans les deux schémas
  • 4. Oracle 12c In Memory • Agenda – Structure de données – Opérations de chargement et de compression – Algorithmes et optimisations – Quelques résultats – RAC, Multitenant, Exadata – La concurrence – Etude de ROI 09/02/2016 4
  • 5. Oracle 12c In Memory 09/02/2016 5 Volumétries grandissantes Besoin en analyse de données Besoin de rapidité d’exécution
  • 6. Oracle 12c In Memory 09/02/2016 6 Volumétries grandissantes Besoin en analyse de données Besoin de rapidité d’exécution Structure de données adaptée
  • 7. Oracle 12c In Memory • Agenda – Structure de données – Opérations de chargement et de compression – Algorithmes et optimisations – Quelques résultats – RAC, Multitenant, Exadata – La concurrence – Etude de ROI 09/02/2016 7
  • 8. Oracle 12c In Memory • Quoi de neuf avec Oracle 12c In Memory Column Store ? – Une nouvelle zone mémoire: « in Memory column store » – Un nouveau format : les données sont organisées en colonne dans cette zone mémoire – Le format en ligne est conservé 09/02/2016 8
  • 9. Oracle 12c In Memory • In Memory column store : paramétrage – Configuré en SGA par le paramètre INMEMORY_SIZE (mini 100Mo) – Ce n’est pas un cache mais un « magasin » … donc pas d’algorithme de vieillissement (LRU/MRU) 09/02/2016 9
  • 10. Oracle 12c In Memory • In Memory column store : Constitution • Pool IMCU : In Memory Compression Unit – Contient les unités de compression (CU) : Données formatées en colonne • Pool SMU – Stocke les Snapshot Metadata Unit (Equivalent des undo pour l’IM) 09/02/2016 10
  • 11. Oracle 12c In Memory • L’IMCU structure de données centrale – Unité d’allocation pour le stockage des données d’une colonne – Chaque colonne est stockée dans un espace contigüe séparé des autres colonnes 09/02/2016 11
  • 12. Oracle 12c In Memory • L’IMCU structure de données centrale 09/02/2016 12 Marque Karmeliet Chimay Chimay Duvel Chimay Duvel Westmalle Duvel Karmeliet Clé Valeur 0 Chimay 1 Duvel 2 Karmeliet 3 Wesmalle CU Min = Chimay Max = Westmalle 2 0 0 1 0 1 3 1 2 Dictionnaire :
  • 13. Oracle 12c In Memory • Agenda – Structure de données – Opérations de chargement et de compression – Algorithmes et optimisations – Quelques résultats – RAC, Multitenant, Exadata – La concurrence – Etude de ROI 09/02/2016 13
  • 14. Oracle 12c In Memory • Provisionnement du pool In Memory • Montée d’une table dans le pool In Memory 09/02/2016 14 SQL> ALTER SYSTEM SET INMEMORY_SIZE=10G SCOPE=SPFILE; SQL> SHUTDOWN IMMEDIATE SQL> STARTUP SQL> ALTER TABLE SALES INMEMORY; SQL> ALTER TABLE SALES INMEMORY (PRODUCT_ID); SQL> ALTER TABLE SALES NO INMEMORY; SQL> ALTER TABLE SALES 2 > MODIFY PARTITION SALES_Q2_1998 INMEMORY;
  • 15. Oracle 12c In Memory • Priorité de montée en mémoire – NONE < LOW < MEDIUM < HIGH < CRITICAL – Détermine comment sont montées les colonnes en mémoire • NONE (Défaut) : montée lors du premier accès • CRITICAL : montée immédiate ET au démarrage d’instance 09/02/2016 15 SQL> ALTER TABLE CUSTOMER INMEMORY PRIORITY CRITICAL; SQL> ALTER TABLE CUSTOMER INMEMORY PRIORITY NONE;
  • 16. Oracle 12c In Memory 09/02/2016 16 Volumétries grandissantes Besoin en analyse de données Besoin de rapidité d’exécution Structure de données adaptée Compression des données
  • 17. Oracle 12c In Memory • Compression – Objectif : réduire la volumétrie des données en mémoire – Format IMCU adapté à une compression efficace – Différents niveaux • DML • QUERY LOW (défaut) • QUERY HIGH • CAPACITY LOW • CAPACITY HIGH 09/02/2016 17 SQL> ALTER TABLE CUSTOMER INMEMORY MEMCOMPRESS FOR QUERY HIGH; SQL> ALTER TABLE ORDERS INMEMORY MEMCOMPRESS FOR DML; Taux de compression Rapidité d’exécution des requêtes
  • 18. Oracle 12c In Memory 09/02/2016 18 Volumétries grandissantes Besoin en analyse de données Besoin de rapidité d’exécution Structure de données adaptée Compression des données Algorithmes adaptés
  • 19. Oracle 12c In Memory • Agenda – Structure de données – Opérations de chargement et de compression – Algorithmes et optimisations – Quelques résultats – RAC, Multitenant, Exadata – La concurrence – Etude de ROI 09/02/2016 19
  • 20. Oracle 12c In Memory • Algorithmes et optimisations –Objectifs • Réduire les volumes traités (filtres) • Réduire le nombre d’opérations (traitements à plusieurs, utilisation du format adéquat) • Limiter l’impact des volumes sur les traitements (optimisation des jointures, des opérations d’agrégation) 09/02/2016 20
  • 21. Oracle 12c In Memory • Algorithmes et optimisations – Utilisation du format adéquat 09/02/2016 21 • Transactionnel et analytique en même temps – Les traitements OLTP tirent bénéfice de l’organisation en lignes – Les traitements analytiques tirent bénéfice de l’organisation en colonnes CBO
  • 22. Oracle 12c In Memory • Algorithmes et optimisations – Réduire le nombre d’opérations 09/02/2016 22 Suppression des index analytiques (Bitmap) Optimisation par le format de l’IMCU qui intègre la valeur minimale et maximale
  • 23. Oracle 12c In Memory • Si une transaction est enregistrée sur le buffer cache – le pool IM est maintenu consistant par le Transaction Manager – L’image avant est maintenue dans le pool IM (SMU) – La lecture consistante est gérée via le SCN … comme auparavant – La transaction est enregistrée dans les redo log … comme auparavant 09/02/2016 23
  • 24. Oracle 12c In Memory • Traitement à plusieurs + filtrage • Opérations SIMD (Single Instruction Multiple Data) – Instructions CPU non spécifiques à Oracle – Disponibles chez Intel dans les jeux d’instructions SSE (SSE, SSE2, SSE3, SSE4), AVX, AVX2 et AVX-512 – Disponibles sur Power PC, Sparc (VIS & VIS2) – Utilisation de registres vectoriels – Permet de traiter plusieurs données en une seule instruction 09/02/2016 24
  • 25. Oracle 12c In Memory • Opérations SIMD – Registre de 128 octets (8 x 16 octets) – 1024 opérations en mode scalaire = 128 op. en SIMD 09/02/2016 25 Le format d’IMCU est particuliérement adapté à ces opérations
  • 26. Oracle 12c In Memory • Opérations SIMD – Les nouveaux processeurs Intel Xeon E5-V3 intégreront les instructions AVX-512 avec des registres de 512 octets – Références • http://www.intel.com/content/dam/www/public/us/en/documents/white- papers/performance-xeon-e5-v3-advanced-vector-extensions-paper.pdf • https://software.intel.com/sites/default/files/m/d/4/1/d/8/Intro_to_Intel_AVX.pdf 09/02/2016 26
  • 27. Oracle 12c In Memory • Filtrage et optimisation des jointures • Filtre de Bloom – Structure de données probabiliste (tableau de bits) – Permet d’affirmer : • Avec certitude, qu’une valeur ne fait pas partie d’un jeu de données • Sans certitude, qu’une valeur fait partie d’un jeu de données (faux positifs qui diminuent avec la taille du jeu de données) 09/02/2016 27 Plus d’information sur la structure - http://antognini.ch/papers/BloomFilters20080620.pdf - http://fr.wikipedia.org/wiki/Filtre_de_Bloom
  • 28. Oracle 12c In Memory 09/02/2016 28 • Filtres de bloom – Utilisés depuis Oracle 10g notamment : • Partition Pruning • Optimisation des jointures par HASH • Smart Scan Exadata (Elimination des données sur le storage server)
  • 29. Oracle 12c In Memory 09/02/2016 29 • Filtres de bloom sur Oracle 12c In Memory – Optimisation des jointures en utilisant la structure de données IMCU et les instructions SIMD CL_ID NOM PAYS 1 Dupont FR 2 Gilmour UK 3 Martin FR 4 Schultz DE 5 Durand FR 6 Waters UK 7 Mason UK 8 Wright UK 9 Lindemann DE 10 Kruspe DE CL_ID V_ID MONTANT 1 1 150 2 2 300 9 3 10 8 4 350 2 5 180 7 6 654 4 7 1524 4 8 354 9 9 136 10 5 789 …/… …/… …/… SELECT c.NOM, v.V_ID FROM CLIENT c, VENTE v WHERE PAYS=‘UK’ AND v.MONTANT>150 AND C.CL_ID=V.CL_ID Bloom Filter CL_ID in 2,6,7,8 HASH JOIN 4 Lignes 4 Lignes
  • 30. Oracle 12c In Memory • Optimisation des agrégations • Transformation par double vecteur de clé – Optimiser les agrégations de données (GROUP BY) en tirant partie du format en colonne (VECTEUR) – Transformation opérée par le CBO – Optimisation des requêtes analytiques avec le format en colonne 09/02/2016 30
  • 31. Oracle 12c In Memory • Transformation par double vecteur de clé 09/02/2016 31 MAG_ID LIEU EN001 Englos LE001 Leers LE002 Lens SE001 Seclin V2001 V2 …/… …/… PR_ID NOM CHI1 Chimay DUV1 Duvel GRI1 Grimbergen KAR1 Karmeliet KWA1 Kwak LEF1 Leffe WES1 Westmalle MAG _ID PR_ID MONTANT SE001 GRI1 150 SE001 DUV1 300 LE002 KWA1 10 SE001 LEF1 350 V2001 WES1 180 LE001 GRI1 654 SE001 WES1 1524 EN001 KAR1 354 LE001 CHI1 136 V2001 WES1 789 …/… …/… …/… 0 3 1 2 4 5 1 0 2 4 5 6 3 CHI1 DUV1 GRI1 KAR1 KWA1 LEF1 WES1 EN001 LE001 LE002 SE001 150 1524 V2001 180 789 1- Création d’un vecteur de clés sur PR_ID 1- Création d’un vecteur de clés sur MAG_ID 2- Applications des vecteurs de clés (prédicat de jointure) 3 - Création d’un accumulateur des données IM (à la volée) 4 – Calcul des agrégats
  • 32. Oracle 12c In Memory • Agenda – Structure de données – Opérations de chargement et de compression – Algorithmes et optimisations – Quelques résultats – RAC, Multitenant, Exadata – La concurrence – Etude de ROI 09/02/2016 32
  • 33. Oracle 12c In Memory • Contexte #1 – Base d’environ 15Go – Oracle Enterprise Linux 7 : 4 vCPU – Extensions ssse3 (SIMD) – Charge de type TPC-H : historique des ventes • 22 requêtes analytiques • Résultats exprimés en QphH (Queries per hour) – Passe 1 : SGA : 22Go et INMEMORY_SIZE : 0 (Buffer Cache : 20Go), PGA : 5Go – Passe 2 : SGA : 22Go et INMEMORY_SIZE : 10Go (Buffer Cache : 10Go) sans données montées en pool IM , PGA : 5Go. – Passe 3 : SGA : 22Go et INMEMORY_SIZE : 10Go (Buffer Cache : 10Go) avec données montées (Compression QUERY HIGH), PGA : 5Go. 09/02/2016 33
  • 34. Oracle 12c In Memory 09/02/2016 34 0 5000 10000 15000 20000 25000 30000 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 TEMPS(1/100SECONDE) REQUETE Comparaison In Memory serveur local (Elasped time) TPCH@10 BC 20Go - T2 TPCH@10 BC 10Go - T2 TPCH@10 IM 10Go - T2
  • 35. Oracle 12c In Memory • Contexte #2 – Base d’environ 50 Go – Instance EC2 Amazon : 8 vCPU sous Redhat EL 7 – Extensions AVX – Charge de type TPC-H : historique des ventes • 22 requêtes analytiques • Résultats exprimés en en QphH (Queries per hour) – Passe 1 : SGA : 55Go et INMEMORY_SIZE : 22,5 Go (Buffer Cache : 10Go) sans données montées en pool IM, PGA : 5Go. – Passe 2 : SGA : 55Go et INMEMORY_SIZE : 22,5 Go (Buffer Cache : 10Go) avec données montées (Compression QUERY HIGH), PGA : 5Go. 09/02/2016 35
  • 36. Oracle 12c In Memory 09/02/2016 36 0 10000 20000 30000 40000 50000 60000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Comparaison In Memory Amazon EC2 (Elasped time) TPCH@30 BC (AWS 55Go SGA + 22,5Go IM) TPCH@30 IM (AWS 55Go SGA + 22,5Go IM)
  • 37. Oracle 12c In Memory • Résultats 09/02/2016 37
  • 38. Oracle 12c In Memory • Agenda – Structure de données – Opérations de chargement et de compression – Algorithmes et optimisations – Quelques résultats – RAC, Multitenant, Exadata – La concurrence – Etude de ROI 09/02/2016 38
  • 39. Oracle 12c In Memory • RAC – Chaque nœud dispose de son pool IM – Les objets sont automatiquement distribués sur tous les nœuds – La distribution est gérée au niveau segment (TABLE, PARTITION, SOUS PARTITION) – Les requêtes peuvent être parallélisées sur tous les nœuds pour obtenir des données locales 09/02/2016 39 SQL> ALTER TABLE CUSTOMER INMEMORY DISTRIBUTE AUTO; SQL> ALTER TABLE SALES INMEMORY DISTRIBUTE BY PARTITION;
  • 40. Oracle 12c In Memory • Multitenant – Par défaut, les pluggable databases (PDB) héritent de la configuration du conteneur root – La taille du pool IM est configurable par PDB – Le surprovisionnement est possible 09/02/2016 40
  • 41. Oracle 12c In Memory • Ai-je encore besoin de mon Exadata ? – Exadata étend les données analytiques au cache Flash et aux disques de l’Exadata – Bénéfice du Smart Scan – Sur Exadata les IMCU sont copiés sur les autres computes nodes afin d’assurer la tolérance de panne 09/02/2016 41 In Memory ne remplace pas Exadata, il en augmente la puissance
  • 42. Oracle 12c In Memory • Agenda – Structure de données – Opérations de chargement et de compression – Algorithmes et optimisations – Quelques résultats – RAC, Multitenant, Exadata – La concurrence – Etude de ROI 09/02/2016 42
  • 43. Oracle 12c In Memory • Combien ça coûte ? – Option de l’Enterprise Edition – 23 000$ / CPU Oracle (2 cores Intel) soit environ 18400€ … non négocié par votre partenaire • Vous trouvez ça cher ? • Qui a dit ? : « Nous reconnaissons que notre technologie est plus chère qu’Oracle » • Qui a dit ? : « Nous assumons n’accorder aucune réduction à nos produits, contrairement aux usages en France » 09/02/2016 43 Franck Cohen Président EMEA - SAP Franck Cohen Président EMEA - SAP Source : http://www.silicon.fr/usf-sap-hana-trop-cher-89969.html
  • 44. Oracle 12c In Memory • SAP Hana – Nécessite une appliance dédiée supportée par HANA (Dell, IBM etc.) – Appliances limitées par la DRAM (http://scn.sap.com/docs/DOC- 52522#jive_content_id_Supported_Hardware_Platforms_RHEL_for_SAP_HANA_Single_Node_ ) – SAP HANA utilise deux caches (lignes et colonnes) – Les opérations de fusions des données de caches (automatiques) peuvent s’avérer problématiques lors de forte activité transactionnelle (http://scn.sap.com/community/developer-center/hana/blog/2014/06/08/oltp-performace-tunning- of-column-table-in-sap-hana) “…/… Two segments of data in different store format will be processed and the calculator always switches between column engine and row engine, which results in bad performance. We recommend doing a manual merge when data in Delta area is large enough or after executing sequences of transactions. …/…” – Nécessité de réécrire les applications et revoir les middleware 09/02/2016 44
  • 45. Oracle 12c In Memory • SAP Hana – Coûts liés à l’OPEX : nouvelle équipe, formation du personnel, nouvelles procédures etc. – Coûts liés au CAPEX : nouveau hardware, nouveaux logiciels – Haute disponibilité via cluster « Shared Nothing » • Réplication du stockage et des systèmes • Architecture complexe – Serveur de noms MASTER ou SLAVE : la topologie du cluster – Serveur d’indexation WORKER ou STANDBY : contient les datastores et traite l’information – Serveur de statistiques : collecte les informations de statut, performance et consommation ressources • Rôle et nombre de serveurs difficilement interopérables09/02/2016 45
  • 46. Oracle 12c In Memory • SQL Server 2014 : OLTP In Memory Optimization – Optimisation pour l’OLTP – Pool In Memory limité à 250 Go (http://msdn.microsoft.com/en- us/library/dn170449.aspx) – De nombreuses limitations dans la gestion des transactions sur les tables InMemory (cf. http://msdn.microsoft.com/en- us/library/dn133169.aspx, partie Limitations) • Nécessité de réécrire une partie du code 09/02/2016 46
  • 47. Oracle 12c In Memory • IBM DB2 10.5 With BLU Acceleration - Les tables sont organisées en ligne OU en colonne - L’utilisation colonne + ligne (shadow tables) utilise un mécanisme de réplication basé sur IBM InfoSphere CDC (Réplication) - Solution complexe à mettre en œuvre - Solution nécessitant de nombreux produits (Information Server, Replication Server, Access Server, et Management Console) - Utilise un stockage sur SSD mais pas en DRAM 09/02/2016 47
  • 48. Oracle 12c In Memory • Agenda – Structure de données – Opérations de chargement et de compression – Algorithmes et optimisations – Quelques résultats – RAC, Multitenant, Exadata – La concurrence – Etude de ROI 09/02/2016 48
  • 49. Oracle 12c In Memory • ROI : Contexte – Application Oracle déjà en place sur EE + Partitionnement – Estimation de coût en €/QphH – Achat de 4 CPUs In Memory (8 cores Intel). – Base de travail : test sur EC2 Amazon (plus représentatif) – Investissement : • Licences : 4 x 18 400€ = 73600 € • Prestation d’accompagnement (5 à 10j) : 9000€ • 0 Formation, 0 DBA en plus 09/02/2016 49 Economie de : 201,84 € par QphH Amortissement ≈ 409j ≈ 1,1 année QphH@30g €/QphH (Base de location AWS : 17500€/3ans) TPCH@30 BC (AWS EC2) 61,06 286,60 TPCH@30 IM (AWS EC2) 206,47 84,76
  • 50. Oracle 12c In Memory • Cas d’utilisation – Batch de calcul des approvisionnements magasins • Intégration des données de Stock • Intégration de l’historique des ventes • Intégration des offres promotionnelles – Allongement de la durée (Criticité de fin de traitements) – Problème dans l’approvisionnement des magasins – Avec In Memory column Store • Le batch est réduit de 3h • Les colis partent à temps • Les magasins sont approvisionnés à l’heure 09/02/2016 50
  • 52. CONCLUSION Emmanuel Docquois – Ingénieur Avant Vente 09/02/2016 52

Notes de l'éditeur

  1. Gestion en cache de buffer (régit par LRU/MRU) Optimal pour Transaction courte Le verrouillage ligne (depuis 1988) Moins optimal pour Les lectures volumineuses Les requêtes analytiques La compression Avant 1970, bases de données hiérarchiques (manipulation complexe et peu performantes) 1979 : premiers SGBD relationnels et normalisation du SQL Années 1990 : apparition des datawarehouses Années 2000-2010 : explosion du volume des données stockées