OracleTimesTen In

publicité
Oracle TimesTen In-Memory Database
________________________________________________________________________
OracleTimesTen
In-Memory DataBase
Version 1.00
Oracle TimesTen InMemoryDatabase
Oracle France
Janvier 2006
Page 1
Oracle TimesTen In-Memory Database
________________________________________________________________________
TABLE DES MATIERES
Versions du document ................................................................................................................................................ 3
Introduction................................................................................................................................................................. 3
Avertissement ........................................................................................................................................................ 3
Audience ................................................................................................................................................................ 3
Objectifs................................................................................................................................................................. 3
Oracle TimesTen In-Memory Database..................................................................................................................... 4
Performance Temps-Réel ...................................................................................................................................... 4
Accès Multiutilisateurs .......................................................................................................................................... 5
Pas de Perte de Données........................................................................................................................................ 5
Basé sur des Standards .......................................................................................................................................... 5
Zero Administration............................................................................................................................................... 6
Options de déploiements flexibles ........................................................................................................................ 6
Réplication .................................................................................................................................................................. 7
Haute-Disponibilité................................................................................................................................................ 7
Répartition.............................................................................................................................................................. 7
Architecture flexible .............................................................................................................................................. 8
Performance et cohérence...................................................................................................................................... 8
Cache de données .................................................................................................................................................. 9
Cache Connect pour ORACLE ................................................................................................................................ 10
Performance Temps-Réel pour Oracle................................................................................................................ 10
Cache en lecture/écriture ..................................................................................................................................... 11
Intégration avec la base de données Oracle ........................................................................................................ 11
Flexibilité ............................................................................................................................................................. 11
Chargement automatique et rafraichissement ..................................................................................................... 12
Mises à jour bidirectionnelles.............................................................................................................................. 12
Synchronisation automatique .............................................................................................................................. 12
Utilitaire de configuration Web........................................................................................................................... 13
Oracle TimesTen InMemoryDatabase
Oracle France
Janvier 2006
Page 2
Oracle TimesTen In-Memory Database
________________________________________________________________________
Versions du document
Version
Version 01
Date
10/01/2006
Commentaire
Diffusion
Rédaction initiale
Introduction
Avertissement
Ce document est fourni à des fins d'information seulement et son contenu est susceptible d'être
modifié à tout moment. Oracle ne garantit pas qu'il est exempt d'erreurs ni ne fournit aucune
garantie des produits à un usage particulier. Oracle décline toute responsabilité en ce qui
concerne ce document qui ne peut engager Oracle directement ou indirectement.
Audience
Ce document est destiné à des ingénieurs, architectes de système d’information, directeurs
techniques, souhaitant prendre connaissance des fonctionnalités d’Oracle Streams.
Objectifs
Après consultation de ce document, le lecteur sera à même de comprendre les fonctions du
produit, son architecture, et son niveau d’intégration avec les autres produits d’Oracle.
Oracle TimesTen InMemoryDatabase
Oracle France
Janvier 2006
Page 3
Oracle TimesTen In-Memory Database
________________________________________________________________________
Oracle TimesTen In-Memory Database
Oracle TimesTen In-memory Database (Oracle IMDB) est une base de données relationnelle
temps réel (en mémoire) adaptée aux applications nécessitant des temps de réponses
extrêmement faibles avec un nombre d’utilisateurs important. Les domaines propices à ces
applications sont les télécommunications, les salles de marchés, la défense, etc. Oracle IMDB
peut être déployée dans l’application comme un cache de données ou bien comme une base
de données embarquée. Avec Oracle IMDB les données sont intégralement montées en
mémoire, l’accès se faisant au travers du standard de requêtes SQL.
Performance Temps-Réel
Imaginez les opportunités nouvelles dans votre métier si les applications peuvent accéder ou
modifier les informations beaucoup plus rapidement qu’auparavant ? Cela vous permettrait
d’attirer plus de clients, de mieux les fidéliser, en permettant une réactivité forte aux
évènements critiques qui surviennent, et vous permettrait de délivrer des services qui seraient
impossible à fournir en utilisant une base de données relationnelle traditionnelle.
Oracle TimesTen In-Memory Database procure une performance en temps réel en changeant
les règles de stockage des données lors de leur utilisation. En gérant les données en mémoire,
en optimisant les structures de données et leurs algorithmes d’accès, les accès à la base de
données s’effectuent avec une efficacité maximale, et procurent des améliorations de temps de
réponses et de débit significatif. Les librairies dynamiques de Oracle IMDB peuvent être
embarquées dans les applications afin d’améliorer encore les performances.
Figure 1 : Les composants
La gestion des données Temps-Réel se mesure sur 2 axes : les temps de réponses et le débit.
Avec Oracle IMDB, une transaction de lecture d’un enregistrement dans une table dure moins
de 20 microsecondes (20 millionième de secondes), une transaction qui effectue une mise à
Oracle TimesTen InMemoryDatabase
Oracle France
Janvier 2006
Page 4
Oracle TimesTen In-Memory Database
________________________________________________________________________
jour ou une insertion dure moins de 40 microsecondes. En conséquence, le débit est mesuré
en centaine de milliers de transactions par seconde, et ce, même sur un système hardware
avec peu de processeurs.
Figure 2 : les temps de réponse
Accès Multiutilisateurs
Les bases de données mémoires sont souvent perçues comme limitées à des applications
mono-utilisateurs, et peu robustes lorsqu’un serveur vient à tomber en panne. Rien de tout ceci
avec Oracle IMDB. Les applications multiutilisateurs et multi-threadées sont courantes, avec
utilisation des mécanismes de verrouillage ligne, de lecture committée ou de lecture répétées.
Les contentions induites par les écritures et lectures simultanées sont éliminées avec
l’utilisation d’un mécanisme interne de gestion de version, fournissant ainsi des temps de
réponse réguliers et un haut niveau de concurrence d’accès.
Pas de Perte de Données
La persistance est assurée grâce à la combinaison d’une journalisation des transactions et de
la synchronisation périodique des données sur la version résidente (disque) de la base de
données. L’écriture des enregistrements sur les journaux sont synchrones ou asynchrones, lié
à la bonne terminaison de la transaction, et géré par l’application (niveau de transaction).
Pour des systèmes dont le besoin est un maximum de débit, comme des transactions non
financières, des transactions avec des opérateurs réseaux, la journalisation asynchrone
autorise un très haut débit avec un minimum de risque.
Dans le cas ou l’intégrité des données doit être préservée, comme des opérations de courtage
bancaire, Oracle IMDB garantit une complète persistance sans perte de données.
Basé sur des Standards
Dans le passé, la plupart des applications temps réel étaient développées en utilisant des
fonctions spécifiques codées en dur dans l’application. Souvent des produits élaborés pour une
performance très haute utilisent des APIs propriétaires, ou « protégées » pour atteindre les
Oracle TimesTen InMemoryDatabase
Oracle France
Janvier 2006
Page 5
Oracle TimesTen In-Memory Database
________________________________________________________________________
performances souhaitées. Paradoxalement, l’objectif d’Oracle TimesTen In-Memory Database
a toujours été l’adoption et le respect des standards de l’industrie, optimisés pour une
architecture mémoire.
Dans le prolongement du standard des SGBD relationnels, SQL, JDBC et ODBC sont utilisés
pour accéder aux bases de données Oracle TimesTen In-MemoryDB. L’utilisation de SQL
simplifie le développement des applications en facilitant l’accès aux données, la modification
des structures de tables et fournit également des extensions. De nouveaux services peuvent
être rapidement implémentés dans un système de production, par ajout de tables, de colonnes
et de modules applicatifs. Un optimiseur statistique permet de déterminer le meilleur plan
d’accès aux données pour l’optimisation des requêtes. Ainsi, tout développeur familier avec les
bases de données Oracle ou SQL est immédiatement opérationnel et productif dans le
développement d’application temps-réel avec Oracle TimesTen In-MemoryDB.
Zero Administration
L’installation, la configuration et l’administration de Oracle TimesTen In-MemoryDB ne
nécessite qu’un temps minimal et pas d’administrateur dédié. La simplicité de la structure
persistance sur disque, et la « petite » taille des bases de données mémoire réduisent les
tâches habituelles du DBA.
Les tâches d’administration sont activées au travers d’une interface en mode ligne de
commande, ou sont souvent encapsulées dans l’application. Des utilitaires sont fournis pour la
sauvegarde, la restauration, la copie et la migration des bases de données, pour
l’implémentation des règles, ou les requêtes interactives aux données, et enfin pour surveiller
les transactions ou le système dans son ensemble. De plus, des utilitaires sont également
fournis pour configurer et surveiller les données répliquées ou des données du cache de bases
de données Oracle dans le cas ou ces options sont installées.
Options de déploiements flexibles
Oracle TimesTen In-MemoryDB supporte différentes configurations de déploiement permettant
d’implémenter différents scenarii, depuis un cache, jusqu’au données opérationnelles et
transactions critiques.
Alors que les bases de données mémoires sont habituellement embarquées dans l’application,
l’accès traditionnel en mode client/serveur est aussi supporté pour l’ajout de fonctions
complémentaires telles que des éditions, ou pour permettre l’accès à des applications situées
sur d’autres plates-formes matérielles et leur permettre l’accès partagé aux données en
mémoire.
En raison de la criticité des applications, de nombreux déploiements utilisent l’option
Réplication TimesTen vers Timesten afin d’implémenter une configuration hautement
disponible suivant une architecture active-passive ou bien active-active; la répartition de
charges est aussi prise en compte.
Pour gérer le cache du tiers-applicatif, comme dans le cas de déploiement d’architecture SOA
(ServicesOriented Architecture), l’option cache connect to Oracle enrichit les fonctionnalités
de base de données mémoire avec un cache de données automatiquement synchronisé avec
une base de données Oracle.
Oracle TimesTen InMemoryDatabase
Oracle France
Janvier 2006
Page 6
Oracle TimesTen In-Memory Database
________________________________________________________________________
Réplication
Replication – TimesTen to Timesten est une option d’Oracle TimesTen In-MemoryDB qui
permet la réplication des données entre serveurs pour une haute-disponibilité et une meilleure
répartition de charge. La configuration peut être active-passive ou bien active-active, utilisant
des échanges synchrones ou asynchrones, avec une gestion de conflits, résolution de conflits
et resynchronisation automatique suite à une panne sur un serveur. La réplication des données
est compatible avec l’option Cache Connect to Oracle.
Haute-Disponibilité
La disponibilité est un besoin essentiel de la plupart des applications temps-réel. Dans des
domaines qui fonctionnent 24h sur 24, 7 jours sur 7, comme les télécoms par exemple, ou des
systèmes globaux accédés par une application web comme des réservations de voyages, les
indisponibilités de services ne sont pas tolérables. La sécurité des opérations de courtage
financier nécessite que le système soit actif tant que les marchés sont ouverts.
Figure 3 : Réplication en complément de TimesTen In-MemoryDB
La réplication des données est la pierre angulaire technologique pour assurer la hautedisponibilité avec Oracle TimesTen In-MemoryDB. La réplication assure la gestion d’une ou
plusieurs copies des mêmes données sur un ou plusieurs serveurs sur le réseau. Dans le cas
d’une panne d’un serveur, les copies de données restent disponibles sur les autres serveurs
afin d’assurer la continuité de services. La réplication des données permet aussi d’arrêter un
serveur afin d’appliquer des opérations d’administration, modification de schémas, mise à jour
de version, alors que les autres serveurs restent actifs. Lorsque le serveur inactif devient de
nouveau disponible, automatiquement les mécanismes de réplication appliquent les mises à
jour sur ce serveur afin de le synchroniser.
Répartition
En plus de permettre cette haute-disponibilité, la réplication permet aussi de répartir la charge
d’accès sur les différents afin d’optimiser les ressources disponibles. Si les besoins
augmentent, de nouveaux serveurs peuvent être rajoutés à la configuration afin de répondre
aux besoins.
Oracle TimesTen InMemoryDatabase
Oracle France
Janvier 2006
Page 7
Oracle TimesTen In-Memory Database
________________________________________________________________________
Figure 4 : Les différentes possibilités
Architecture flexible
La réplication des données offre une variété d’options de configuration répondant à différents
scenarii incluant les configurations active-passive et active-active.
La réplication de données implémente un modèle de type « Maitre-Abonné », ainsi les données
modifiées des tables désignées ou de la base de données entières sont copiées depuis la
source vers une ou plusieurs bases de données abonnées. En désignant une base de données
comme Maitre et comme Abonné, la réplication bidirectionnelle peut être configurée, incluant
un mode multi nœuds (N-way réplication). Dans le cas d’une réplication bidirectionnelle, si un
conflit est détecté, un mécanisme de résolution est activé afin de garantir la cohérence des
données.
Un abonné peut servir de relais en recevant des données répliquées depuis un maitre et en le
passant à un abonné. Ces relais sont pertinents pour optimiser la performance de la
réplication au travers du réseau, (d’un réseau WAN à un réseau LAN par exemple).
Performance et cohérence
La réplication est basée sur la journalisation, et permet une efficacité optimale et un faible
overhead. Les données répliquées de chaque maitre et abonné sont contrôlées par l’agent de
réplication qui communique via des sockets TCP-IP. L’agent du maitre lit les données modifiées
de la base maitre depuis le journal de transaction, et propage toute modification adéquate à
l’agent de l’abonné, qui applique alors les mises à jours sur la base abonnée. Si l’agent de
l’abonné n’est pas actif, le maitre maintient les mises à jour dans son journal jusqu’à ce que
l’abonné les applique.
La réplication des données est asynchrone par défaut. Dans ce cas, les mises à jour sur la
base de données maitre sont appliquées sans attendre que le ou les abonnés aient reçu les
mises à jour. Les bases de données maitres et abonnées ont des mécanismes internes pour
confirmer que les mises à jour ont bien été propagées et validées. Ces mécanismes assurent
que les mises à jour ont été appliquées une seule fois à l’abonné.
La réplication asynchrone fournit une performance optimale, mais l’application est
complètement découplée de la réception des données répliquées pour l’abonné. Pour des
applications nécessitant un très hait niveau de cohérence des données répliquées entre le
maitre et l’abonné, un mécanisme d’accusé de réception est possible (return receipt ou return
twosafe)
Oracle TimesTen InMemoryDatabase
Oracle France
Janvier 2006
Page 8
Oracle TimesTen In-Memory Database
________________________________________________________________________
Le mode return receipt permet la synchronisation de l’application avec le mécanisme de
réplication en bloquant l’application jusqu’à ce que la réplication confirme que l’abonné a bien
reçu les données répliquées.
Le mode twosafe fournit un mécanisme de synchronisation complet en bloquant l’application
tant que la réplication n’a pas confirmé la bonne mise à jour des données répliquées par
l’abonné.
Cache de données
Lorsque l’option Cache Connect to Oracle est configurée, des données d’une base Oracle
peut-être mises en cache et maintenues dans un cache groupe au travers d’une base de
données Oracle TimesTen In-memoryDB. Un cache groupe peut être configuré pour propager
les mises à jour du cache vers la base Oracle d’origine.
La réplication des données fonctionne dans cette configuration en répliquant les changements
depuis le cache groupe, tout comme entre bases de données TimesTen In-Memory DB.
Lorsque les caches group sont utilisés, le mécanisme de réplication s’assure que seules les
mises à jour du cache group depuis les applications connectées sont propagées à la base de
données Oracle. Les mises à jours d’u ncache groupe provenant de la réplication d’un autre
cache group ne sont pas répliquées vers la base de données Oracle.
Oracle TimesTen InMemoryDatabase
Oracle France
Janvier 2006
Page 9
Oracle TimesTen In-Memory Database
________________________________________________________________________
Cache Connect pour ORACLE
L’option Cache Connect to Oracle permet de créer en temps-réel un cache modifiable de
données Oracle. Ce cache permet d’améliorer drastiquement les performances d’accès aux
données par les applications et améliore la capacité de montée en charge.
Cache Connect to Oracle charge un sous-ensemble de données Oracle dans une base de
données Oracle TimesTen In-MemoryDB, la propagation des mises à jour est bidirectionnelle,
et un Pass Through SQL permet d’accéder directement aux données Oracle qui ne sont pas
dans le cache, et les données sont automatiquement resynchronisées suite à une panne.
Cache Connect to Oracle est compatible avec l’option Replication – TimesTen to TimesTen.
Performance Temps-Réel pour Oracle
La majorité des données d’une entreprise sont dans des bases de données volumineuses,
accédées dans des contextes transactionnels mais aussi décisionnels. Les performances ne
sont pas toujours au rendez-vous. Les données sur vos meilleurs clients, vos commandes en
cours, les transactions récentes, le catalogue produit en sont des exemples.
Le Cache Connect to Oracle permet de copier et de gérer automatiquement ces informations
dans une base Oracle TimesTen InMemoryDB pour des accès temps réel. Cache Connect to
Oracle fournit la connexion et les transferts bi-directionnels de données entre une base de
données Oracle et une base Oracle TimesTen InMemoryDB.
En gérant les données en mémoire, et en optimisant les structures de données et les
algorithmes d’accès, les manipulations de données s’effectuent avec un maximum d’efficacité,
procurant des améliorations drastiques de performance.
Figure 5 : Cache Connect ajouté à Oracle TimesTen In-memoryDB
Oracle TimesTen InMemoryDatabase
Oracle France
Janvier 2006
Page 10
Oracle TimesTen In-Memory Database
________________________________________________________________________
Cache en lecture/écriture
La plupart des outils de cache sont en lecture seule, et procurent des fonctionnalités limitées.
Cache Connect to Oracle supporte des accès SQL en lecture et en écriture, et peut être alors
utilisé pour un large panel d’applications. Par exemple, capturer et gérer des données pour les
opérateurs télécoms, le commerce en ligne, la sécurité des transactions financières, la
facturation, et tous autres systèmes transactionnels pour lesquels un cache en lecture seule
n’est pas applicable. D’autres exemples incluent les données de références, comme le profil
d’un abonné, des tables de paramétrage pour la configuration réseau, ou le cache est chargé
au démarrage de chaque processus et mis à jour dès qu’un changement survient.
Intégration avec la base de données Oracle
Cache Connect to Oracle a été spécifiquement élaboré pour utiliser les fonctionnalités et API
des bases de données Oracle. Afin de procurer un maximum de transparence pour
l’application, Cache Connect to Oracle utilise une unique connexion à la base de données via
un SQL « pass through ». Les applications ont seulement besoin de se connecter à une base
de données Oracle TimesTen InMemory Database, et toute requête SQL qui ne peut être
alimentée par le cache et routée de manière transparente vers la base de données Oracle. La
fonctionnalité de « pass through » est paramétrée afin de spécifier quels types de traitement
doivent être routés et sous quelles conditions.
Figure 6 : Accès SQL Pass Through vers Oracle
Flexibilité
Cache Connect to Oracle utilise le concept de « cache group », qui décrit une collection de
tables Oracle IMDB qui mappent un sous-ensemble de tables d’une base de données Oracle.
Un cache group peut mapper une table entière ou bien un sous-ensemble de lignes et de
colonnes de cette table.
Cache Connect to Oracle gère la durée de rétention des données dans le cache. En plus des
possibilités automatiques d’alimentation du cache, un cache group peut être chargé, rafraichit
ou supprimé à la demande par instructions SQL. Oracle TimesTen InMemory Database peut
Oracle TimesTen InMemoryDatabase
Oracle France
Janvier 2006
Page 11
Oracle TimesTen In-Memory Database
________________________________________________________________________
contenir plusieurs cache group depuis une même base de données Oracle, et une base de
données Oracle peut-être partagée au travers de plusieurs Oracle TimesTen InMemory
Database.
Il y a 2 catégories de cache group :
USER-MANAGER Cache group, qui permet aux utilisateurs (ou applications) de définir les
requêtes SQL et le comportement du cache. Les utilisateurs ont un control total sur le
chargement, rafraichissement, et mécanismes de propagation, et peuvent définit finement le
comportement du cache pour répondre au mieux aux besoins de l’application.
SYSTEM-MANAGED cache group fournit des caches préétablis dont le comportement est
complètement géré par Cache Connect to Oracle. Un system-manager cache group
implémente des configurations en lecture seule, en synchronisation automatique des données
(synchrone ou asynchrone). L’interface entre Cache Connect to Oracle et une base de
données Oracle est complètement transparent pour l’application.
Chargement automatique et rafraichissement
Cache Connect to Oracle propose des options de paramétrages pour établir comment et
quand les données de la base Oracle sont chargées dans le cache, en liaison avec le type de
cache group créé. Des opérations SQL telles que LOAD et REFRESH, sont utilisées pour
alimenter le cache group et le mettre à jour périodiquement, d’une manière globale ou
incrémentale. Certains cache group peuvent être définit en mode AUTOREFRESH qui
synchronisera les données sur une périodicité prédéfinie.
Mises à jour bidirectionnelles
Les mises à jour du cache sont propagées à la base Oracle d’une manière synchrone ou
asynchrone suivant les besoins de performance et intégrité souhaités.
La propagation synchrone garantit que si la base Oracle n’accepte pas la mise à jour, elle est
alors défaite (rollback) sur la base Oracle IMDB.
Les mises à jour sur la base Oracle de données cachées aussi dans le cache, sont propagées
de manière asynchrone au cache group en utilisant les techniques de rafraichissement décrites
précédemment.
Synchronisation automatique
Cache Connect to Oracle continue à fonctionner même si la connexion à la base de données
a été perdue, ou si le réseau est inaccessible. Les mises à jour des données dans le cache
group sont journalisées dans une file d’attente, et dès que la connexion est de nouveau
opérationnelle, propagées à la base de données Oracle. D’une manière analogue, les mises à
jour effectuées sur la base de données Oracle sont également journalisées dans une file
d’attente et propagées au cache groupe dès que la liaison est de nouveau opérationnelle.
Oracle TimesTen InMemoryDatabase
Oracle France
Janvier 2006
Page 12
Oracle TimesTen In-Memory Database
________________________________________________________________________
Utilitaire de configuration Web
Cache Connect to Oracle propose un outil d’administration Web pour l’administrateur du
Cache Connect to Oracle, et peut-être activé au travers de l’intranet pour créer et gérer des
caches groups. L’outil d’administration peut être utilisé pour créer directement un cache group
ou bien pour générer un fichier SQL qui définit le cache group. L’administrateur autorise les
utilisateurs à initialiser un ou plusieurs caches group en leur permettant de naviguer dans le
schéma Oracle. Les utilisateurs peuvent aussi l’outil d’administration pour charger ou décharger
des données du cache depuis la base de données Oracle ou vice-versa.
Oracle TimesTen InMemoryDatabase
Oracle France
Janvier 2006
Page 13
Téléchargement