Database memory

Oracle Database In-Memory : pour vous faire patienter jusqu'au 18 juin - partie 2

05/06/2014
Business
Données

Nous avons publiĂ© rĂ©cemment un premier billet dĂ©taillant la nouvelle fonctionnalitĂ© Oracle Database In-Memory 12c, Ă  partir de la keynote de  Larry Ellison, prĂ©sentĂ©e Ă  l'Oracle Open World 2013. Pour vous faire patienter jusqu'au lancement en France par Oracle de cette option rĂ©volutionnaire le 18 juin, Ă  Paris, oĂą Gilles Knoery, Directeur GĂ©nĂ©ral de Digora, sera interviewĂ©, voici le deuxième billet.

Rappel : depuis quelques mois, Digora a eu le privilège de tester cette nouvelle option dans le cadre du programme Beta Testing organisĂ© par Oracle.

1. La génération de rapports

imdb12c-13

Lorsque vous construisez  des rapports, des objets compliquĂ©s, la mĂ©thode que nous pouvons utiliser maintenant, je devrais dire la mĂ©thode utilisĂ©e avec l’option In-Memory, vous avez une sĂ©rie de requĂŞtes qui, vous le savez, produisent un rapport, un objet non normalisĂ© en quelque sorte, dĂ©solĂ© pour l’expression car un rapport n’est pas normalisĂ©. Cet objet est créé en mĂ©moire et utilise ensuite le Fast Column Scan pour garnir ce rapport.  Et cela est aussi, au minimum, beaucoup plus rapide que la mĂ©thode utilisĂ©e actuellement. Ainsi, nous gĂ©rons des balayages simples, des jointures complexes, la crĂ©ation d’objets pour des rapports, tout cela pouvant aller 100 fois plus vite qu'actuellement.

2. Les traitements OLTP : ralentis ou pas  ?

imdb12c-14

J’espère que vous me croyez quand je dis que nous pouvons effectuer ces balayages très très rapidement. Mais, revenons Ă  la question : comment pouvez-vous rendre les transactions plus rapides, tout en mettant Ă  jour les donnĂ©es simultanĂ©ment dans le format ligne et aussi dans le format colonne ? Ceci reprĂ©sente u travail supplĂ©mentaire. Comment pouvez-vous faire plus de choses en moins de temps ? C’est une bonne question. Examinons d’abord comment les choses se passaient avant que nous n’ayons le stockage en colonne, comment Oracle fonctionne actuellement. Lorsque vous crĂ©ez une table dans Oracle aujourd’hui, et que vous organisez votre base en tant que DBA, vous ne crĂ©ez pas simplement une table mais vous dĂ©cidez aussi sur quelles colonnes vous allez mettre un index. Donc vous crĂ©ez une table, puis vous dites : je veux aussi crĂ©er un index sur cette colonne. Et puis vous dĂ©finissez la Primary Key sur cette colonne, par exemple le numĂ©ro de commande. Et vous avez certainement assez d’index pour les besoins de cette transaction. Mais il y toutes sortes d’index sur d’autres colonnes tels que nom de l’état (ou dĂ©partement), montant, nom de client, … Il y a un paquet de choses que vous indexez, non pas pour pouvoir exĂ©cuter cette transaction, mais plutĂ´t pour les requĂŞtes analytique complexes des traitements. Voyez, si vous examinez la conception d’une base typique, comme vous le faites avec Oracle aujourd’hui… Vous crĂ©ez quelques index. Une  paire d’index pour le traitement de la transaction et de 10 Ă  20 index supplĂ©mentaires pour des traitements analytiques. Reprenons cet exemple. Vous allez insĂ©rer une nouvelle commande dans la base Oracle. OK, vous insĂ©rer l’entĂŞte de la ligne de commande dans la table des commandes.  C’est une opĂ©ration simple.  Puis, vous devez mettre Ă  jour 10, 15, 20 index. Il s’agit lĂ -aussi de 10, 15, 20 opĂ©rations, en plus d’insĂ©rer une ligne dans une table. Ainsi, insĂ©rer une ligne dans une table aujourd’hui, ce n’est pas seulement insĂ©rer une ligne dans une table, c’est insĂ©rer une ligne dans une table et ensuite mettre Ă  jour index après index après index. C’est très coĂ»teux. De plus, le DBA doit ĂŞtre très intelligent pour imaginer ce que vous voulez indexer et ce que vous ne voulez pas indexer. En d’autres mots, vous devez anticiper les requĂŞtes et les analyses que les utilisateurs vont lancer avant mĂŞme qu’ils ne les lancent, car vous devez crĂ©er ces index Ă  l’avance. Mettre Ă  jour ces index, ces index analytiques, est très coĂ»teux et cela ralentit le traitement des transactions.

3. Supprimer les index analytiques

imdb12c-15

DĂ©barrassons-nous d’eux. Jetons tous ces index analytiques.  Et remplaçons ces index analytiques par le stockage au format colonne en mĂ©moire (In Memory Column Store). Rappelez-vous que le but des index analytiques Ă©tait d’accĂ©lĂ©rer les requĂŞtes analytiques.

imdb12c-16

Et bien, nous avons une nouvelle technologie. Qui permet aux requĂŞtes analytiques de s’exĂ©cuter 100 fois plus vite. Nous n’avons plus besoin des index analytiques. Nous pouvons les jeter tous,  bien loin.

imdb12c-17

La table des commandes : vous insĂ©rez une ligne dans la table des commandes et vous mettez Ă  jour 1, 2 ou 3 index et c’est tout. Ces index analytiques ont disparu ; ils sont remplacĂ©s par le stockage en colonne et le stockage a un très faible overhead pour la mise Ă  jour et sur la mĂ©moire. Vous n’avez pas, rappelez vous, vous n’avez pas de journalisation pour le stockage en colonne.  Tout est en mĂ©moire. Un très faible overhead. Par suite, les traitements OLTP vont Ă©normĂ©ment  plus vite parce que nous utilisons un stockage en colonne et en mĂ©moire plutĂ´t que tous ces index analytiques. Mais ce n’est pas tout. Les requĂŞtes que vous n’aviez jamais anticipĂ©, ce que vous n’aviez jamais imaginĂ© indexer, va s’exĂ©cuter bien plus vite dĂ©sormais. Parce que le DBA n’a pas besoin de se demander ce qu’il va indexer et ce qu’il ne va pas indexer. Si vous le voulez, le stockage en colonne couvre toutes vos donnĂ©es. Tout, tout va plus vite. La conception de la base devient plus facile. L’optimisation, dans ce cas, devient inutile.

4. Mise en Ĺ“uvre d'In-Memory Database

imdb12c-19

Laissez-moi vous montrer comme il est facile d’activer l’option In-Memory. Pour la base Oracle, c’est tout simple… Vous prĂ©cisez combien de mĂ©moire vous voulez utiliser dans le serveur.  Dites-moi combien de mĂ©moire vous voulez utiliser. Dites-moi quelles partitions de quelles tables vous voulez rendre rĂ©sidentes en mĂ©moire. Puis, dĂ©barrassez-vous de tous ces index. Cliquez sur DELETE, DELETE, DELETE, DROP, DROP, DROP, DROP est le terme correct en SQL. DROP, DROP, DROP, DROP. Et tout fonctionne. Les requĂŞtes vont 100 fois plus vite. Tout va plus vite. ConsidĂ©rez, considĂ©rez ce que vous auriez Ă  faire si vous dĂ©cidiez de garder Oracle pour votre application OLTP et que vous choisissiez de partir sur une base en mode colonne pour exĂ©cuter de grosses requĂŞtes. Que devez-vous faire alors ? Et bien, c’est vraiment très simple. Vous gardez Oracle pour les traitements OLTP. Puis, vous faites une copie de la base. Vous dĂ©chargez vos donnĂ©es, rechargez vos donnĂ©es, réécrivez vos applications, réécrivez vos requĂŞtes, tester Ă  nouveau le tout, former Ă  nouveau vos utilisateurs, et vous y ĂŞtes. En espĂ©rant que cela marche...

5. Compatibilité avec vos applications

Voici l’alternative.  Activez un switch, et toutes vos applications existantes fonctionnent bien plus vite.

imdb12c-20

Tout fonctionne. Il n’y a aucun changement dans le SQL. Il n’y a aucun changement dans vos applications. Il n’y aucune fonction non supportĂ©e. Tout ce qui fonctionne aujourd’hui fonctionne avec l’option In-Memory activĂ©e. Pas besoin de dĂ©charger/recharger les donnĂ©es.  Juste activer un switch. Il n’y a pas de migration de donnĂ©es. Chacune de vos applications, chaque application que vous avez Ă©crit, chaque application que vous avez achetĂ©e, tout fonctionne sans  changer quoi que ce soit dans l’application. Et l’option In-Memory fonctionne parfaitement avec l’option Multi-Tenant d’Oracle 12c. Ainsi, toute cette technologie est prĂŞte pour le Cloud, idĂ©ale pour le Cloud. Il s’agit d’une proposition unique : pour chaque base que vous avez, les requĂŞtes fonctionneront 100 fois plus vite, les mises Ă  jour iront deux fois plus vite, simplement en activant un switch. La base sera plus facile Ă  optimiser, elle fonctionnera plus vite, elle sera Ă©galement aussi fiable et aussi sĂ©curisĂ©e qu’elle l'est aujourd’hui.

6. In-Memory et Haute Disponibilité

imdb12c-21

Tous les avantages d’Oracle RAC, fiabilitĂ©, disponibilitĂ©, facilitĂ© de maintenance, toutes ces fonctionnalitĂ©s continueront de fonctionner avec l’option In-Memory. Oracle fournit le mĂŞme niveau de fiabilitĂ© qu’aujourd’hui lorsque  vous activez l’option In-Memory. Rien en change, rien ne change.  Oracle RAC fonctionne. Lorsque vous voulez une scalabilitĂ© verticale, lorsque vous voulez une scalabilitĂ© horizontale pour la mĂ©moire, RAC continue de fonctionner.  Si un des nĹ“uds  du Cluster RAC tombe en panne, le système continue de fonctionner.  Vous ĂŞtes protĂ©gĂ©s contre la panne d’un nĹ“ud du cluster Oracle RAC.  La perte d’un site, une corruption de donnĂ©es, une erreur humaine. Vous pouvez faire un « Point In Time Recovery Â», tout cela, tout ce que vous utilisez aujourd’hui fonctionne exactement de la mĂŞme façon avec l’option In-Memory activĂ©e. C’est seulement vos requĂŞtes qui vont aller bien plus vite et de mĂŞme pour vos transactions.

7. Compatibilité avec les progiciels et témoignage de Yahoo

A nouveau, que ce soit une application dĂ©veloppĂ©e Ă  l’extĂ©rieur ou une application dĂ©veloppĂ©e en interne, elle s’exĂ©cute sans changement. La seule diffĂ©rence est qu’elle prendra moins de temps pour s’exĂ©cuter.

imdb12c-22

Voici une citation intĂ©ressante, car, vous le savez, nous avons eu des gens qui ont essayĂ© cette option. Et beaucoup de monde dit : In-Memory, In-Memory. Pourquoi ne pas stocker, je veux dire, si j’avais un serveur avec une mĂ©moire suffisamment grande, la base ne rentrerait-elle pas en entier dans la mĂ©moire maintenant ? La rĂ©ponse est oui, bien sĂ»r. Mais elle serait en mode ligne.

imdb12c-23

Alors, que dit notre client Yahoo ? « J’ai la base entière en mĂ©moire, en mode ligne. Et j’active l’option de stockage en colonne. Et maintenant la base fonctionne plus de 100 fois plus vite. Â» Toutes les lignes Ă©taient en mĂ©moire avant. L’option In-Memory a Ă©tĂ© activĂ©e.  Le balayage de donnĂ©es fonctionne plus de 100 fois plus vite. C’est rĂ©el.

A suivre...

Dans la suite de la Keynote, Larry Ellison va inviter Juan Loueza, d'Oracle,  Ă  venir sur le podium, pour prĂ©senter quelques dĂ©monstrations impressionnantes... Ainsi se termine ce deuxième billet sur la keynote prĂ©sentĂ©e par Larry Ellison Ă  Oracle Open World 2013 le 22/9/2013, keynote durant laquelle il a annoncĂ© et dĂ©crit l’option Oracle InMemory Database 12c. Etes-vous aussi enthousiaste que DIGORA sur cette nouvelle technologie Oracle InMemory Database 12c ? Venez Ă  la prĂ©sentation Oracle du 18 juin pour en savoir beaucoup plus et bĂ©nĂ©ficier d'un retour client et de l'interview de Gilles Knoery, Directeur GĂ©nĂ©ral de Digora, sur les tests dĂ©jĂ  rĂ©alisĂ©s sur cette option. Lien d’inscription pour cet Ă©vĂ©nement : http://eventreg.oracle.com/profile/web/index.cfm?PKWebId=0x86964beb5 Le troisième et dernier billet sur ce thème est accessible au lien suivant : http://www.digora.com/blog/oracle-database-memory-pour-vous-faire-patienter-jusquau-18-juin-partie-3 Vous souhaitez mettre en oeuvre Oracle InMemory Database 12c rapidement ? Contactez-nous ici. Nous pouvons  prendre RDV pour le 19 juin… bandeau-inscriprion Index thĂ©matique du Blog Digora

copy-link