www.parisjug.org www.parisjug.org



Documents pareils
JOnAS 5. Serveur d application d

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

OpenPaaS Le réseau social d'entreprise

Hibernate vs. le Cloud Computing

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

VMware ESX : Installation. Hervé Chaudret RSI - Délégation Centre Poitou-Charentes

Bases de données et sites WEB Licence d informatique LI345

Grid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department

Sommaire. 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan

Consolidation. Grid Infrastructure avec la 11gR2

Acquisition des données - Big Data. Dario VEGA Senior Sales Consultant

NIMBUS TRAINING. Administration de Citrix NetScaler 10. Déscription : Objectifs. Publics. Durée. Pré-requis. Programme de cette formation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Présentation du module Base de données spatio-temporelles

<Insert Picture Here> Maintenir le cap avec Oracle WebLogic Server

Restaurant Application Quick Reference Guide

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

FOURNIR UN SERVICE DE BASE DE DONNÉES FLEXIBLE. Database as a Service (DBaaS)

Cartographie des solutions BigData

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Les journées SQL Server 2013

Cours Bases de données

CNAM Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

Notes de cours : bases de données distribuées et repliquées

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Webinar ORACLE LE LICENSING ORACLE Quel type de licensing choisir?

Java et les bases de données

ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON

Bases de données Cours 1 : Généralités sur les bases de données

Organiser vos données - Big Data. Patrick Millart Senior Sales Consultant

BONJOURGRID : VERSION ORIENTÉE DONNÉE & MAPREDUCE SÉCURISÉ

Cloud Computing. Introduction. ! Explosion du nombre et du volume de données

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Oracle Learning Library Tutoriel Database 12c Installer le logiciel Oracle Database et créer une Database

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0

StratusLab : Le projet et sa distribution cloud

L offre décisionnel IBM. Patrick COOLS Spécialiste Business Intelligence

Architectures haute disponibilité avec MySQL. Olivier Olivier DASINI DASINI - -

Présentation Alfresco

<Insert Picture Here> Solaris pour la base de donnés Oracle

VMware : De la Virtualisation. au Cloud Computing

Un exemple de cloud au LUPM : Stratuslab

Compte Rendu d intégration d application

SQL Server 2012 et SQL Server 2014

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Une solution de stockage VDI unifiée, flexible et disponible pour vos utilisateurs

LES APPROCHES CONCRÈTES POUR LE DÉPLOIEMENT D INFRASTRUCTURES CLOUD AVEC HDS & VMWARE

CHAPITRE 1 ARCHITECTURE

Bases de Données NoSQL

GESTION DU CYCLE DE VIE. Albert Amar Avant-vente Middleware

Oracle Maximum Availability Architecture

Big Data : utilisation d un cluster Hadoop HDFS Map/Reduce HBase

NoSQL : hype ou innovation? Grégory Ogonowski / Recherches Octobre 2011

Jean-Philippe Paquette

Synchronisation Mysql (Replication)

Fouillez facilement dans votre système Big Data. Olivier TAVARD

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

4. SERVICES WEB REST 46

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Atelier Progress Rollbase

Administration de Citrix NetScaler 10 CNS-205-1I

Open Source Job Scheduler. Installation(s)

Cassandra et Spark pour gérer la musique On-line

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

DOCUMENTATION - FRANCAIS... 2

Auto-évaluation Oracle: cours de base

ADMINISTRATION EXADATA

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Power BI 365. #SPSParis E05 Isabelle Van Campenhoudt Jean-Pierre Riehl 30 Mai 2015 / May 30 th, 2015

Information utiles. webpage : Google+ : digiusto/

L accès aux Clouds (Académiques)

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Plan. Department of Informatics

SPECIFICATION ET DESCRIPTION DU MULTICAST FIABLE DANS ETOILE

Middleware et services de la grille

Tungsten: une implémentation du futur clustering de PostgreSQL

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. Stephane.Vialle@supelec.fr

Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009. Pôle de Calcul Intensif pour la mer, 11 Decembre 2009

ORACLE 10g Découvrez les nouveautés. Jeudi 17 Mars Séminaire DELL/INTEL/ORACLE

L INFORMATIQUE SOUS FORME DE SERVICE POUR VOTRE ENTREPRISE. Farid BENREJDAL Senior Systems Engineer VMware

Introduction à MapReduce/Hadoop et Spark

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Introduction aux SGBDR

BMC Middleware Management

Cours 13. RAID et SAN. 2004, Marc-André Léger

Programmation parallèle et distribuée

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

4 Exemples de problèmes MapReduce incrémentaux

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

Mise en œuvre des serveurs d application

Transcription:

Data grid Du cache distribué aux grilles de données Cyrille Le Clerc Xebia

Data grid Du cache distribué aux grilles de données Erwan Alliaume Xebia

Data grid Du cache distribué aux grilles de données Jean-Michel Bea Fast Connect

«Du cache distribué aux grilles de données» Grid computing 5

Intervenants Cyrille Le Clerc (Xebia) Erwan Alliaume (Xebia) Jean-Michel Bea (Fast Connect) Grid computing 6

Sommaire Caches distribués Network Attached Memory Grilles de données Data Grid, Cloud et les autres Grid computing 7

Cache distribué

Votre DBA! Grid computing 9

Votre manager Small number of items may make up the bulk of sales Chris Anderson Wired Magazine Grid computing 10

Votre application Grid computing 11

Une solution? J'ai une idée! Distribuons et cachons notre application Grid computing 12

Architecture existante Cache Application BDD 13 Architecture cible Cache Cache Cache Application Application Application BDD

Exemples de produits Ehcache Jboss Cache Solution open source la plus populaire Cache Thread-Safe in memory Configuration XML (ehcache.xml) Participation aux transaction JTA Très léger JSR-107 Jcache implementation Singleton / multi instances RI pour le JDK SE 8 ou 9 :) JSR-107 JCache implementation Memory / Disk / Cluster storage Memory / Disk storage Ajout possible de listeners (Cache Manager / Cache Event) JMX Here we are! Distributable 14 Listeners may be plugged in (Cache Manager / Cache Event) JMX Distribuable sur l un ou plusieurs nœud d un cluster

Utilisation d un cache Manipulation directe cache.put( Element element ) cache.get ( Object key ) Pull through / Self populating cache.get ( Object key ) Hibernate cache L2 Hibernate / sans cache : 192 secondes Hibernate / Ehcache L2 : 60 secondes Accès direct à Ehcache : 20 secondes Accès direct à Ehcache / session optim: 1 secondes => L2 Ca ne scale pas! get / put sur 1 seul objet => données à répliquer partout 15

Storage Mémoire Toujours disponible / Thread safe Souvent basée sur une LinkedHashMap du JDK Peut contenir des Object Non persistent Do not forget, disk is cheap Disque Optionnel, à configurer Doit contenir des Serializable Attention à la sérialisation Java : un Byte[] est 20 fois plus rapide qu un String Jdbc Attention à ne pas perdre de vu le but du cache! 16

Cache distribué Plusieurs mécanismes, même problématiques RMI Cache Réplication Cache JGoups Cache Server Application Application Terracotta JMS replication (ehcache 1.6) BDD Plusieurs sources de données, danger! Possibilité de lire des données incohérentes Mises à jour concurrentes Notifications, évictions, contraintes de fiabilité Même problème qu une mémoire partagée Est-ce un problème? Pas forcément! 17

Eviction Suppression des éléments du cache Permet de sizer votre cache Time-based / Cache size / Heap size Based LRU / LFU / FIFO / Custom Quelque fois régionalisable (dans Jboss Cache) (deprecated) /myshop : éviction au bout de 10 minutes /myshop/product/pricelist : aucune éviction /myshop/shoppingcarts : éviction au bout de 30 minutes

Transaction et réplication Avec transaction Réplication au commit, en 1 seul message Au rollback, aucune réplication Sans transaction Réplication immédiate! 1000 mises à jours => 1000 messages Transactions => cache plus performant? Nécessite la création de message pour faire des locks Fait transférer de gros volumes de données d un coup

Réplication VS invalidation La meilleure stratégie? Ca dépend! Si vous êtes le seul à connaitre l élément Utilisez l élément lui-même en payload (réplication) Si l élément est disponible en BDD, 2 options La réplication : envoie de l élément sur les autres caches L invalidation des autres caches Problèmes liés à l invalidation (ou faible TTL) But des caches distribués? Réduire le nombre d acces à la base! L invalidation force le rechargement des objets à partir de la BDD L invalidation n est pas adapté pour les objets souvent mis à jours 20

Notifications Mises à jour Asynchrones Rend la main rapidement Mises à jour Synchrones Freine l exécution locale Les mises à jour asynchrones peuvent engendrer des incohérences de données Les mises à jour synchrones permet d attendre la validation des notifications 21

Loaders Charger des éléments dans le cache A partir d une source de données (store) File store / Jdbc Store / Oracle Berkeley DB / Jdbm Exporter des éléments du cache Lors des put et évictions Différents type de loaders Loader hiérarchiques utilise TCP pour acceder à des caches distants Clustered loader Recherche de données sur un cluster / Lazy state transfer Loader chainé

Loaders, course aux features? Local Cache Share the same store Loader Store Loader 1 One cache with a store Hierarchical caches Loader Loader Loader 2 Store Dedicated store Loader Loader Loader Store Loader Store Loader Multiple cache loader Store Loader 5 6 Store Loader 4 3 Store Store Store

Network attached memory (NAM)

Application VS JVM clustering Caches distribués Your classes Serialization Your classes Your classes Your classes Spring Spring Spring Hibernat e Hibernate Hibernate ORM Spring Hibernat e Clustered 2nd Level Cache JVM Network attached memory JVM JVM JVM NAM :Terracotta Cas d utilisation : Réplication de session Cache distribué Database offload Workload partitioning 25

Terracotta overview Joue la carte de la transparence ROOT Aucun GET ni PUT Clustering-as-a-service => Utilisation massive de l instrumentalisation Définition d objets Root partagés Durée de vie de la JVM Jamais nettoyés par la JVM Objets Super static Attention à ne pas partager n importe quoi Trop de partage tue le partage (surtout le réseau!!) La transparence, c est vite la porte ouverte à faire n importe quoi 26

Network attached memory Virtual Heap Contient tous les objets partagés du cluster Managée par le(s) TC server(s) Terracotta Les clients utilisent leur objets à leur souhait Tout ou partie du des graphes d objets Simulation de Swap TC peut insérer des valeurs fictives pour optimiser la mémoire Virtual GC Supprime les objets non référencés Objets atteignable par aucune Root Objets ne résidant chez aucun client 27

Les mécanismes de locks Niveaux de Lock Named locks Aux points d entrée et sortie seulement Ecriture Granularité approximative Lecture Autolocks Ecriture synchrone Concurrent Plus efficace que les Named Locks Utilisable sur des objets du cluster Il manquerait une intégration avec un Transaction Manager Spring 28

Distributed Method Invocation Invocation de méthodes distribuées (DMI) Déclaration de DM sur un objet du cluster Appel de l a méthode sur l un des nœud du cluster Chaque JVM possédant cet objet exécute cette méthode Objet non présent dans la Heap, pas d appel! Distributed Object callme() JVM 1 o.callme() JVM 2 o.callme() JVM 3 o.callme() Attention à l utilisation! Aucune garantie que la méthode soit exécutée partout! Mauvaise idée si l on veut coordonner les actions aux données

Caching Terracotta est utilisable pour du caching Avec EHCache (en mode non distribué) Le cache est persistable sur le disque Ehcache distribué Node 1 Terractotta + ehcache Node 2 Node 1 Node 2 Disk Disk Terracotta Server DB DB Disk 30

Terracotta optimizations Privilégie la lecture dans les caches mémoire Les champs des objets sont séparés sur le disque, mais restent aussi proches que possible Chaque champ est récupérable individuellement Lit seulement ce qu on a besoin, rien de plus Lecture à partir du serveur temps lecture sur disque Message customisé, la JVM patch sa propre mémoire => Peu générer beaucoup de requêtes sur le réseau Ecriture en batch, des mises à jour fines N utilise pas la sérialisation Java Ecriture champ à champs => on ne transmet pas le graph complet Ecriture sur disque en append uniquement Rien n est trié, indexé, déplacé sur le disque 31

From network attached memory to datagrid! 32

LB / Partitioning / Data affinity Partitioned data Reduce the need for broadcast and cluster communication However, makes high availability more Load Load Balancer Balancer challenging Partitioned cache lives only in one place AS 1 AS 2 DB 33 AS 1 DB (evens) AS 2 DB (odds)

Clustering Threads Works with part of java.util.concurrent Application JVM Java Synchronized( this ) { } Byte code MONITORENTER( ID ); MONITOREXIT ID ); Terracotta libraries LockAcquired ( ID ); LockRelease( ID); Terracotta server lock manager 34

Data Grid V1 One unique queue This Single Queue is the bottleneck! Worker 1 JVM Master 1 JVM Worker 2 JVM java.util.queue Master 2 JVM Worker 3 JVM Add Worker on demand 35

Data Grid V2 2 queues per worker java.util.queue Add routing ID java.util.queue java.util.queue java.util.queue Master 1 JVM Dynamic Router Master 2 JVM java.util.queue java.util.queue java.util.queue java.util.queue 36 Worker 1 JVM Worker 2 JVM Worker 3 JVM Add Worker on demand

Grilles de données

Partitionner pour tenir la charge

Partitionner pour tenir la charge Tout sur le même serveur : déjà vu, souvent possible mais très couteux Jusqu à 1.5 To de RAM et 64 processeurs Data Mainframe Grid computing 39

Partitionner pour tenir la charge Data Grid Partition data on several servers Partition gamma Small Server Partition beta Small Server Data Mainframe Partition alpha Small Server

Répliquer pour la disponibilité

Répliquer pour la disponibilité Performances té Read / Write ili b i on p Dis master Master Read Only Sync replica Sync replica Partition alpha Async replica Read Only Async replica Partition alpha

Répliquer pour la disponibilité master Sync replica Active Data Center es d vec ones a ce chr n e ili asyn s é r La plicas ré Async replica Stand By Data Center

JVM JVM JVM n Container n Catalog Catalog Service Service JVM 2 Container 2 JVM 1 Container 1 Partitionner et Répliquer master Sync replica Sync replica master Async replica Async replica partition alpha partition gamma

Du Near Cache à la grille de données

Le Near Cache Application avec un near cache Da tab a Ab se S sor ho ber ck Datagrid Central Database Application cluster Cache partition alpha Cache partition gamma Cache partition beta Client near cache Client near cache Node 1 Node n Grid computing 46

Les limites du Near Cache Datagrid Latency! Bandwith! Partition gamma Client near cache Partition beta Application Partition alpha Grid computing 47

Du Near Cache à la Grille de Données Datagrid Stop data transfer Partition gamma Client near cache Partition beta Application Partition alpha Grid computing 48

Du Near Cache à la Grille de Données t en s em t i ra es t r né e s li don a c et o l Co Datagrid partition alpha... Application partition gamma Grid computing 49

La grille de donnée

La grille de données Datagrid Reduced data transfer Collocated data & business logic partition alpha datagrid enabled app partition beta Reduced Business Logic partition gamma Grid computing Collocated data & business logic 51

La grille de données Les données sont partionnées Traitements et données sont colocalisés Le volume de données est limité aux requêtes et aux fragments de résultat Grid computing 52

Structurer ses données pour la grille

Grid computing 54

Partitionner les données Seat number price Booking reduction TrainStop date TrainStation code name Passenger name Train code type Modélisation orientée objet classique Grid computing 55

Partitionner les données Partitioning ready entities tree e Root n ti ty Seat number price Booking reduction Passenger name Train code type Du TrainStop date TrainStation code name plic Ref e at e ren d i ce n e da ach ta pa rt it ion Root entity, clef de partitionnement, sub-entities & duplication de données de référence Grid computing 56

Partitionner les données R em Train Seat number price booked ove un us ed da Booking reduction ta Passenger name code type TrainStop date TrainStation code name Suppression des données inutiles à la logique métier Grid computing 57

Partitionner les données Train U sh n m are od no èle thi ng Seat number price booked code type TrainStop date TrainStation code name Modélisation partitionnée grid ready Des données façonnées au besoin métier Grid computing 58

Partitionner les données Account number Account number from CashWitdrawal date amount to MoneyTransfer id date amount CashWitdrawal date amount Casser les relations pour partitionner Situation de comptes bancaires Grid computing 59

Partitionner les données MoneyTransfer est partagé par 2 instances de la root entity! Account number Account number from CashWitdrawal date amount to MoneyTransfer id date amount CashWitdrawal date amount Casser les relations pour partitionner Situation de comptes bancaires Grid computing 60

Partitionner les données Découper MoneyTransfer en 2 entités Et casser le lien! Account number CashWitdrawal date amount Account number MoneyTransferIn id date amount MoneyTransferOut id date amount CashWitdrawal date amount Casser les relations pour partitionner Situation de comptes bancaires Grid computing 61

Partitionner les données Les instances d Account sont isolées! Account number CashWitdrawal date amount Account number MoneyTransferIn id date amount MoneyTransferOut id date amount CashWitdrawal date amount Casser les relations pour partitionner Situation de comptes bancaires Grid computing 62

Partitionner les données Acc oun t es t la roo t en Account number CashWitdrawal date amount MoneyTransferOut id date amount tity de la g rille! MoneyTransferIn id date amount Modélisation partitionnée grid ready Des données façonnées au besoin métier Grid computing 63

Le modèle de programmation À la Grid computing JPA 64

Le modèle de programmation API de haut niveau à la JPA (persist, merge, remove, find) Relations entre les entités (@OneToMany, @ManyToOne, @OneToOne) Versioning (@version) Indexation des attributs (@Index) Query language ("select e from Employee e where e.lastname=:lastname" ) Grid computing 65

Les Design patterns nt e m e t trai ns e l o i r t i t e r y Envo tes les pa u o t r u s departure =Paris Datagrid arrival =Marseille departuretime =2009 /05/01 15 :00 Search trains partition alpha datagrid enabled app Search trains partition beta Map Reduce Search trains Grid computing partition gamma 66

Les Design patterns ne r u o t n re ltat o i t i t r pa ésu r e u e q d Cha agment un fr Datagrid 1543 - Paris -> Marseille - 14:35 7492 - Paris -> Lyon -> Marseille 15:05 Search trains partition alpha datagrid enabled app NULL Map Reduce Search trains partition beta 0153 - Paris -> Marseille - 15:05 3954 - Paris -> Marseille - 15:35 Search trains Grid computing partition gamma 67

Les Design patterns les e g è gr a ats t t l n u e i s l é Le c nts de r e m g a r f Datagrid Search trains partition alpha datagrid enabled app Search trains partition beta 1543 7492 0153 3954 - Paris Paris Paris Paris -> Marseille - 14:35 -> Lyon -> Marseille 15:05 -> Marseille - 15:05 -> Marseille - 15:35 Search trains Map Reduce Grid computing partition gamma 68

Les Design patterns Datagrid lise a é r ion t i t r a le p u nt e e s m e e it Un le tra Book Ticket partition alpha datagrid enabled app Book Ticket partition beta Book 1 seat on train 0153 Book Ticket Request Routing Grid computing partition gamma 69

Transactions et ACIDité Mais et l' ACID dans tout ça? Théoriquement possible (Transaction distribuée, 2 phases commit) Supporté par certains outils (GigaSpaces) Est-ce vraiment une bonne chose? Grid computing 70

Interactions avec la base de données

Interactions avec la BDD Co Data Grid mm ent syn chr oni s er? Partition gamma Insert + update + delete Partition beta Select (new, modified, deleted ) Central Database Partition alpha Grid computing 72

Interactions avec la BDD Grille Data Grid Partition gamma datagrid enabled app erge, persist, m remove ins ert,u pd ate, de lete insert, update, delete Partition beta ete l e e, d t a d, up t r e ins Partition alpha -> B DD Grid computing Central Database Entities Modifications Listener 73

Interactions avec la BDD ee r u t i r Ec BD a l r u ch s t a b n D Ca ch ew rite Entities Sync Modifications Listener datagrid enabled app lat en cy Queue persist, merge, remove batch insert, update, delete Partition Central Database Entities Async Batch Modifications Listener Ecriture en batch à la BDD Supporte l indisponibilité de la BDD Hautement disponible par la réplication de la queue Grid computing 74

Interactions avec la BDD les tecter é d t n e DD? Comm B a l e d ents m e g n a ch Data Grid Partition gamma Non datagrid enabled app insert, update, delete create, merge, remove Central Database Partition beta Partition alpha Grid computing 75

Interactions avec la BDD BDD -> Grille Data Grid Ca ch er ea dl Partition gamma ate nc y sel ect select Partition beta Central Database ct sele select id from train where last_modification >? Partition alpha Synchronization Daemon select id from sys_deleted where table= train and last_modification >? Grid computing 76

Interactions avec la BDD System Change Number Sur chaque table, une colonne système porte un numéro croissant de la dernière transaction Utilisé pour les checkpoints et la réplication Support natif dans : Oracle: introduit en10g, le SCN est un nombre similaire au numéro de révision Subversion DB2: introduit en 9.5, le SCN est un timestamp Equivalent manuel : une colonne timestamp La liste des lignes supprimées est stockée dans une table système Grid computing 77

Interactions avec la BDD Les API de loaders Lire en base les données manquantes List<entity> get(list<id>) Persister en base les modifications void persist(list<type, entity>) type : insert, update, delete Bulk load depuis la base au démarrage de la grille preload(grid) /!\ les opérations doivent être multi entités pour tenir la charge! Grid computing 78

Interactions avec la BDD Loaders internes : Pros L accès à la base est regroupé dans la grille => cohesiveness La charge d accès à la base est répartie sur les partitions Write behind permet de batcher les accès à la base Cons Comment un loader peut-il ne charger que les données de sa partition? «Je suis le loader de la partition beta, comment puis-jet interroger la base sur les seules données gérées par la partition beta? Je dois connaitres l algorithme de partionnement» Grid computing 79

Interactions avec la BDD Data Grid Le lo ade r ex tern e select Central Database t pu External loader cluster Partition gamma Node 1 put Partition beta Node n pu t Partition alpha Grid computing 80

Interactions avec la BDD Loaders externes : Pros Simple, le partitionnement est réalisé par la grille Cons Le loader externe devient le goulet d étranglement des performances Le code d accès à la base est disséminé entre la grille et le loader externe => loss of cohesiveness Grid computing 81

Et les batchs? Une grille de données peut écourter les nuits batch en parallélisant les traitements.

Cloud, Grid, XTP et les autres

Les acteurs

Les acteurs Distributed HashTable (DHT), Key Value Store SimpleDB, DataStore / BigTable / Hypertable, Memcached Compute Grid GridGain In Memory DataGridGigaSpaces, Oracle Coherence, Websphere extrem Scale. File system DataGridHadoop

Questions / Réponses

Sponsors Grid computing 87

Merci de votre attention!

Licence http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Grid computing 89