12/05/2009




                                                                                                           ...
12/05/2009



                                                         Data grid
Du cache distribué aux grilles de données...
12/05/2009



                                                         Data grid
Du cache distribué aux grilles de données...
12/05/2009



                                                         Data grid
Du cache distribué aux grilles de données...
« Du cache distribué
                               aux grilles de données »




                  12/05/2009             ...
Intervenants
       Cyrille Le Clerc (Xebia)


       Erwan Alliaume (Xebia)

       Jean-Michel Bea (Fast Connect)




  ...
Sommaire
       Caches distribués


       Network Attached Memory


       Grilles de données


       Data Grid, Cloud e...
Distributed cache and Network Attached
          Memory has been removed to focus on Data
                              Gr...
Grilles de
                                            données


                                                         ...
Partitionner pour
                   tenir la charge



                                                            www.pa...
Partitionner pour tenir la charge
 Tout sur le même serveur :
 déjà vu, souvent possible mais très couteux



            ...
Partitionner pour tenir la charge
                                                                                        ...
Répliquer pour
            la disponibilité


                                                            www.parisjug.org...
Répliquer pour la disponibilité
                                                                                          ...
Répliquer pour la disponibilité


                                                                                        ...
Partitionner et Répliquer



                           Container 1
                             JVM 1
                   ...
Du Near Cache
                            à la Data Grid



                                                            ww...
Le Near Cache
                                                    Application avec un near cache
                         ...
Les limites du Near Cache
                                                                                                ...
Du Near Cache à la Grille de Données
                                                                                     ...
Du Near Cache à la Grille de Données

                                    s
                                e nt
         ...
La grille de
                                                      donnée


                                              ...
La grille de données
                                                                                                     ...
La grille de données
       Les données sont partionnées


       Traitements et données sont colocalisés


       Le volu...
Structurer ses
                 données pour la
                                                                     grill...
Un système de réservation de billets de train !




                  12/05/2009                    Grid computing        ...
Partitionner les données


                                            Seat
                                              ...
Partitionner les données
                                      Partitioning ready
                                        ...
Partitionner les données
                                                                                     Rem
        ...
Partitionner les données

                                                                                                ...
Partitionner les données



                          Account                                                             ...
Partitionner les données
                                   MoneyTransfer est partagé par 2 instances
                    ...
Partitionner les données
                                     Découper MoneyTransfer en 2 entités
                        ...
Partitionner les données
                                   Les instances d’Account sont isolées !




                   ...
Partitionner les données
                                                                                                 ...
Le modèle de programmation

                                                                                              ...
Le modèle de programmation
     API de haut niveau à la JPA (persist, merge, remove, find)

     Relations entre les entit...
Les Design patterns
                                 t                                                                    ...
Les Design patterns
                                   e                                                                  ...
Les Design patterns
                                   s                                                                  ...
Les Design patterns
                                                                                                      ...
Transactions et ACIDité
     Mais et l' ACID dans tout ça ?

           Théoriquement possible (Transaction distribuée, 2
...
Interactions avec
                                        la base de
                                                 donn...
Interactions avec la BDD
                 Data Grid                                                           Co
         ...
Interactions avec la BDD

                                        Data Grid                                               ...
Interactions avec la BDD
                                      D   D
                            su r la B
               ...
Interactions avec la BDD
                                                                                                 ...
Interactions avec la BDD
                                  BDD -> Grille
                 Data Grid

                     ...
Interactions avec la BDD
     System Change Number
       Sur chaque table, une colonne système porte un
       numéro cro...
Interactions avec la BDD
     Les API de loaders
      Lire en base les données manquantes
               List<entity> get...
Interactions avec la BDD
     Loaders internes :
      Pros
               L’accès à la base est regroupé dans la grille =...
Interactions avec la BDD
                                                                       Data Grid
                ...
Interactions avec la BDD
     Loaders externes :
       Pros
               Simple, le partitionnement est réalisé par la ...
Et les batchs ?



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




  ...
Cloud, Grid, XTP
                     et les autres


                                                            www.pari...
Les acteurs




                                                                                                          ...
Les acteurs
     Distributed HashTable (DHT), Key Value Store
             SimpleDB, DataStore / BigTable / Hypertable,
  ...
Questions /
                                     Réponses


                                                            ww...
Sponsors




                  12/05/2009                  Grid computing                                                 ...
Merci de votre
                                         attention!


                                                     ...
Licence




                http://creativecommons.org/licenses/by-nc-sa/2.0/fr/




                  12/05/2009         ...
Prochain SlideShare
Chargement dans…5
×

Soirée Data Grid au Paris JUG (2009/05/12)

1 602 vues

Publié le

Cyrille Le Clerc (Xebia), Erwan Alliaume (Xebia), Jean Michel Bea (Fast Connect) ont présenté au Paris Java User Group les principes du Data Grid.

Cache distribué, Network Attached Memory, Data Grid ou Cloud Computing sont des termes très à la mode qui s’inscrivent dans la même tendance.

Nous présenterons pendant cette soirée le chemin qui nous à conduit d’un simple EH Cache à des grilles de centaines de giga octects de données qui s’étalent sur des data center.

CACHES DISTRIBUES

Les Cache Distribués se sont banalisés avec les frameworks Open Source Jboss Cache et EH Cache distribué. Où en sommes nous aujourd’hui ?

- Quels sont les cas d’utilisation d’un cache distribué ? Quels gains en attendre ?
- Comment migrer d’un cache local à un cache distribué ? Nos frameworks sont-ils adaptés à ces caches distribués ?
- Comment fonctionne un cache distribué ?

NETWORK ATTACHED MEMORY

Le concept de Network Attached Memory a décollé dans l’univers Java avec Terracotta et offre à nos applications un espace mémoire encore inimaginable il y a peu. Que se cache-t-il derrière ?

- Quels sont les cas d’utilisation des technologies de Network Attached Memory ?
- Cette mémoire virtuellement infinie n’introduit-elle pas des contraintes ?
- Si la mémoire est partagée, qu’en est-il des traitements ?
- Quelles sont les perspectives des technologies de Network Attached Memory ?

DATA GRID

Le concept de data grid s’est popularisé avec les services Google Big Table ou Amazon S3 mais aussi avec des sites comme eBay qui annoncent des data center gigantesques. Cela va-t-il arriver dans l’informatique classique ?

- Qu’est-ce qu’une grille de donnée ? Comment ça marche ?
- Qui a besoin de Data Grid ? Est-ce réservé aux hyper scalable comme eBay ou Facebook ? Comment faisait-on avant ? En ai-je besoin ?
- Comment structurer une application pour utiliser une grille de données ? Cela la change-t-il la façon de programmer ?
- Map Reduce est-il un pattern utilisable avec une grille de données ? Est-ce le seul ?
- Les grilles de données vont-elles remplacer les bases de données traditionnelles ? Comment peuvent-elles cohabiter ?

DATA GRID, CLOUD ET LES AUTRES

Data Grid, Grid Computing, Cloud Computing et eXtreme Transaction Processing (XTP) sont fréquement associés.
Comment positionner Data Grid par rapport à ces technologies ?
Quels positionnements ont les acteurs de cet univers ? Amazon S3&EC2 ? Coherence ? Gigaspace ? Google App engine & Big Table ? Grid Gain ? Terracotta ? Websphere eXtreme Scale ?
Et les mainframes dans tout ça ?

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 602
Sur SlideShare
0
Issues des intégrations
0
Intégrations
84
Actions
Partages
0
Téléchargements
48
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive










  • z/TPF users : Sabre, Amadeus, VISA Inc, American Express, Holiday Inn, Chicago Board Options Exchange (CBOE), Singapore Airlines, KLM, Qantas, Amtrak, Marriott International , Worldspan and the NYPD (911 system).






  • Cache is between the application and the database
    Reduce database workload
    Basic operations to manipulate data (put and get++)
    Data is still processed on the application side











































  • Soirée Data Grid au Paris JUG (2009/05/12)

    1. 1. 12/05/2009 www.parisjug.org www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    2. 2. 12/05/2009 Data grid Du cache distribué aux grilles de données Cyrille Le Clerc Xebia www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    3. 3. 12/05/2009 Data grid Du cache distribué aux grilles de données Erwan Alliaume Xebia www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    4. 4. 12/05/2009 Data grid Du cache distribué aux grilles de données Jean-Michel Bea Fast Connect www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    5. 5. « Du cache distribué aux grilles de données » 12/05/2009 Grid computing www.parisjug.org 5 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    6. 6. Intervenants Cyrille Le Clerc (Xebia) Erwan Alliaume (Xebia) Jean-Michel Bea (Fast Connect) 12/05/2009 Grid computing www.parisjug.org 6 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    7. 7. Sommaire Caches distribués Network Attached Memory Grilles de données Data Grid, Cloud et les autres … 12/05/2009 Grid computing www.parisjug.org 7 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    8. 8. Distributed cache and Network Attached Memory has been removed to focus on Data Grid www.parisjug.org 8 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    9. 9. Grilles de données www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    10. 10. Partitionner pour tenir la charge www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    11. 11. 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 12/05/2009 Grid computing www.parisjug.org 39 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    12. 12. 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 www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    13. 13. Répliquer pour la disponibilité www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    14. 14. Répliquer pour la disponibilité Performances i té Read / Write o n ibil p Dis master Master Read Only Sync replica Partition alpha Sync replica Async replica Read Only Async replica Partition alpha www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    15. 15. Répliquer pour la disponibilité master Sync replica Active Data Center c des ave ones lie nce nchr r ési asy La licas rép Async replica Stand By Data Center www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    16. 16. Partitionner et Répliquer Container 1 JVM 1 master Sync replica Container 2 Catalog JVM 2 Catalog Service Service JVM JVM Sync replica master Container n JVM n Async replica Async replica partition alpha partition gamma www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    17. 17. Du Near Cache à la Data Grid www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    18. 18. Le Near Cache Application avec un near cache Da tab ase Ab sor Shoc ber k Central Database Datagrid Cache partition alpha Cache partition beta Cache partition gamma Application cluster Client near cache Client near cache Node 1 Node n 12/05/2009 Grid computing www.parisjug.org 46 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    19. 19. Les limites du Near Cache Datagrid Latency ! Bandwith ! Partition gamma Client near cache Partition beta Application Partition alpha 12/05/2009 Grid computing www.parisjug.org 47 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    20. 20. Du Near Cache à la Grille de Données Datagrid Stop data transfer Partition gamma Client near cache Partition beta Application Partition alpha 12/05/2009 Grid computing www.parisjug.org 48 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    21. 21. Du Near Cache à la Grille de Données s e nt m ite r tra es é l ise onn ca t d o e C ol Datagrid partition alpha ... Application partition gamma 12/05/2009 Grid computing www.parisjug.org 49 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    22. 22. La grille de donnée www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    23. 23. 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 Collocated data & business logic 12/05/2009 Grid computing www.parisjug.org 51 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    24. 24. La grille de données Les données sont partionnées Traitements et données sont colocalisés Le volume de données échangées est limité aux requêtes et aux fragments de résultat 12/05/2009 Grid computing www.parisjug.org 52 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    25. 25. Structurer ses données pour la grille www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    26. 26. Un système de réservation de billets de train ! 12/05/2009 Grid computing www.parisjug.org 54 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    27. 27. Partitionner les données Seat Booking Passenger number reduction name price Train code type TrainStation TrainStop code date name Modélisation orientée objet classique 12/05/2009 Grid computing www.parisjug.org 55 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    28. 28. Partitionner les données Partitioning ready entities tree e ntity Root Seat Booking Passenger number reduction name price Train code Du type pli Refe ca ted renc in e d TrainStation ea ata TrainStop ch code pa date rtit io n name Root entity, clef de partitionnement, sub-entities & duplication de données de référence 12/05/2009 Grid computing www.parisjug.org 56 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    29. 29. Partitionner les données Rem ove u nuse d da ta Seat Booking Passenger number reduction name price booked Train code type TrainStation TrainStop code date name Suppression des données inutiles à la logique métier 12/05/2009 Grid computing www.parisjug.org 57 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    30. 30. Partitionner les données U ‘sh n m a re o d Seat no èle thi number ng price ’ booked Train code type TrainStation TrainStop code date name Modélisation partitionnée ‘grid ready’ Des données façonnées au besoin métier 12/05/2009 Grid computing www.parisjug.org 58 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    31. 31. Partitionner les données Account Account number number from to CashWitdrawal MoneyTransfer CashWitdrawal date id date amount date amount amount Casser les relations pour partitionner Situation de comptes bancaires 12/05/2009 Grid computing www.parisjug.org 59 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    32. 32. Partitionner les données MoneyTransfer est partagé par 2 instances de la root entity ! Account Account number number CashWitdrawal MoneyTransferIn MoneyTransferOut CashWitdrawal date id id date amount date date amount amount amount Casser les relations pour partitionner Situation de comptes bancaires 12/05/2009 Grid computing www.parisjug.org 60 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    33. 33. Partitionner les données Découper MoneyTransfer en 2 entités Et casser le lien ! Account Account number number CashWitdrawal MoneyTransferIn MoneyTransferOut CashWitdrawal date id id date amount date date amount amount amount Casser les relations pour partitionner Situation de comptes bancaires 12/05/2009 Grid computing www.parisjug.org 61 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    34. 34. Partitionner les données Les instances d’Account sont isolées ! Account Account number number CashWitdrawal MoneyTransferIn MoneyTransferOut CashWitdrawal date id id date amount date date amount amount amount Casser les relations pour partitionner Situation de comptes bancaires 12/05/2009 Grid computing www.parisjug.org 62 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    35. 35. Partitionner les données Acc oun t es t la roo t en tity d e la Account gril le ! number CashWitdrawal MoneyTransferOut MoneyTransferIn date id id amount date date amount amount Modélisation partitionnée ‘grid ready’ Des données façonnées au besoin métier 12/05/2009 Grid computing www.parisjug.org 63 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    36. 36. Le modèle de programmation À la JPA 12/05/2009 Grid computing www.parisjug.org 64 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    37. 37. 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" 12/05/2009 Grid computing www.parisjug.org 65 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    38. 38. Les Design patterns t Datagrid ite me n er le tra artitions E n vo y s l e s p te su r tou departure=Paris arrival=Marseille departureTime=2009/05/01 15:00 Search trains partition alpha datagrid enabled app Search trains partition beta Search Map Reduce trains partition gamma 12/05/2009 Grid computing www.parisjug.org 66 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    39. 39. Les Design patterns e Datagrid re tourn partition t ue ré sulta Chaq en t de un fra g m 1543 - Paris -> Marseille - 14:35 7492 - Paris -> Lyon -> Marseille – 15:05 Search trains partition alpha datagrid enabled app Search trains NULL partition beta Map Reduce 0153 - Paris -> Marseille - 15:05 3954 - Paris -> Marseille - 15:35 Search trains partition gamma 12/05/2009 Grid computing www.parisjug.org 67 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    40. 40. Les Design patterns s Datagrid rè ge le cl i e nt ag sulta ts Le ré nt s de fra gme Search trains partition alpha datagrid enabled app Search trains partition beta 1543 - Paris -> Marseille - 14:35 7492 - Paris -> Lyon -> Marseille – 15:05 0153 - Paris -> Marseille - 15:05 3954 - Paris -> Marseille - 15:35 Map Reduce Search trains partition gamma 12/05/2009 Grid computing www.parisjug.org 68 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    41. 41. Les Design patterns Datagrid e tion réalis parti seule tement Une i le tra Book Ticket partition alpha datagrid enabled app Book Ticket partition beta Book 1 seat on train 0153 Book Request Routing Ticket partition gamma 12/05/2009 Grid computing www.parisjug.org 69 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    42. 42. 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 ? 12/05/2009 Grid computing www.parisjug.org 70 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    43. 43. Interactions avec la base de données www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    44. 44. Interactions avec la BDD Data Grid Co mm ent syn chr oni ser ? Partition gamma insert, update & delete Select (new, modified, deleted) Partition beta Central Database Partition alpha 12/05/2009 Grid computing www.parisjug.org 72 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    45. 45. Interactions avec la BDD Data Grid Grille -> B DD ins ert, upd Partition gamma ate &d ele datagrid te enabled app persist, merge insert, update & delete & remove Partition beta te le & de Central Database a te pd ,u ert ins Partition alpha Entities Modifications Listener 12/05/2009 Grid computing www.parisjug.org 73 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    46. 46. Interactions avec la BDD D D su r la B en batch Ca ch e critur ew E rite lat Entities Sync en cy Modifications Listener Queue datagrid enabled app persist, merge batch insert, & remove update & delete Partition Central Database Entities Async Batch Ecriture en batch à la BDD Modifications Listener Supporte l’indisponibilité de la BDD Hautement disponible par la réplication de la queue 12/05/2009 Grid computing www.parisjug.org 74 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    47. 47. Interactions avec la BDD Data Grid er Comme nt détect D? ents de la BD les changem Partition gamma Non datagrid enabled app insert, update create, merge & delete & remove Central Database Partition beta Partition alpha 12/05/2009 Grid computing www.parisjug.org 75 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    48. 48. Interactions avec la BDD BDD -> Grille Data Grid Ca ch er ea dl ate nc y Partition gamma 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 > ? 12/05/2009 Grid computing www.parisjug.org 76 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    49. 49. 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 12/05/2009 Grid computing www.parisjug.org 77 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    50. 50. 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 ! 12/05/2009 Grid computing www.parisjug.org 78 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    51. 51. 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 » 12/05/2009 Grid computing www.parisjug.org 79 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    52. 52. Interactions avec la BDD Data Grid Le loa der ext ern Central Database e select Partition gamma External loader cluster t pu Node 1 put Partition beta Node n pu t Partition alpha 12/05/2009 Grid computing www.parisjug.org 80 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    53. 53. 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 12/05/2009 Grid computing www.parisjug.org 81 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    54. 54. Et les batchs ? Une grille de données peut écourter les nuits batch en parallélisant les traitements. www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    55. 55. Cloud, Grid, XTP et les autres www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    56. 56. Les acteurs www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    57. 57. Les acteurs Distributed HashTable (DHT), Key Value Store SimpleDB, DataStore / BigTable / Hypertable, Memcached, Project Voldermort, CouchDB Compute Grid GridGain In Memory Data Grid GigaSpaces, Oracle Coherence, Websphere eXtreme Scale. Distributed File system Hadoop www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    58. 58. Questions / Réponses www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    59. 59. Sponsors 12/05/2009 Grid computing www.parisjug.org 87 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    60. 60. Merci de votre attention! www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010
    61. 61. Licence http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ 12/05/2009 Grid computing www.parisjug.org 89 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Sunday, June 13, 2010

    ×