SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
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
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
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
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
« 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Contenu connexe

Plus de Cyrille Le Clerc

Embracing Observability in CI/CD with OpenTelemetry
Embracing Observability in CI/CD with OpenTelemetryEmbracing Observability in CI/CD with OpenTelemetry
Embracing Observability in CI/CD with OpenTelemetryCyrille Le Clerc
 
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)Cyrille Le Clerc
 
Joe Mobile sur le Cloud - DevoxxFR 2013
Joe Mobile sur le Cloud - DevoxxFR 2013Joe Mobile sur le Cloud - DevoxxFR 2013
Joe Mobile sur le Cloud - DevoxxFR 2013Cyrille Le Clerc
 
Monitoring Open Source pour Java avec JmxTrans, Graphite et Nagios - DevoxxFR...
Monitoring Open Source pour Java avec JmxTrans, Graphite et Nagios - DevoxxFR...Monitoring Open Source pour Java avec JmxTrans, Graphite et Nagios - DevoxxFR...
Monitoring Open Source pour Java avec JmxTrans, Graphite et Nagios - DevoxxFR...Cyrille Le Clerc
 
Paris Devops - Monitoring And Feature Toggle Pattern With JMX
Paris Devops - Monitoring And Feature Toggle Pattern With JMXParis Devops - Monitoring And Feature Toggle Pattern With JMX
Paris Devops - Monitoring And Feature Toggle Pattern With JMXCyrille Le Clerc
 
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...Cyrille Le Clerc
 
GeeCon 2011 - NoSQL and In Memory Data Grids from a developer perspective
GeeCon 2011 - NoSQL and In Memory Data Grids from a developer perspectiveGeeCon 2011 - NoSQL and In Memory Data Grids from a developer perspective
GeeCon 2011 - NoSQL and In Memory Data Grids from a developer perspectiveCyrille Le Clerc
 
Java Application Monitoring with AppDynamics' Founder
Java Application Monitoring with AppDynamics' FounderJava Application Monitoring with AppDynamics' Founder
Java Application Monitoring with AppDynamics' FounderCyrille Le Clerc
 
Bonnes pratiques des applications java prêtes pour la production
Bonnes pratiques des applications java prêtes pour la productionBonnes pratiques des applications java prêtes pour la production
Bonnes pratiques des applications java prêtes pour la productionCyrille Le Clerc
 
Soirée OSGi au Paris Jug (14/10/2008)
Soirée OSGi au Paris Jug (14/10/2008)Soirée OSGi au Paris Jug (14/10/2008)
Soirée OSGi au Paris Jug (14/10/2008)Cyrille Le Clerc
 
Xebia Knowledge Exchange - Owasp Top Ten
Xebia Knowledge Exchange - Owasp Top TenXebia Knowledge Exchange - Owasp Top Ten
Xebia Knowledge Exchange - Owasp Top TenCyrille Le Clerc
 

Plus de Cyrille Le Clerc (11)

Embracing Observability in CI/CD with OpenTelemetry
Embracing Observability in CI/CD with OpenTelemetryEmbracing Observability in CI/CD with OpenTelemetry
Embracing Observability in CI/CD with OpenTelemetry
 
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
 
Joe Mobile sur le Cloud - DevoxxFR 2013
Joe Mobile sur le Cloud - DevoxxFR 2013Joe Mobile sur le Cloud - DevoxxFR 2013
Joe Mobile sur le Cloud - DevoxxFR 2013
 
Monitoring Open Source pour Java avec JmxTrans, Graphite et Nagios - DevoxxFR...
Monitoring Open Source pour Java avec JmxTrans, Graphite et Nagios - DevoxxFR...Monitoring Open Source pour Java avec JmxTrans, Graphite et Nagios - DevoxxFR...
Monitoring Open Source pour Java avec JmxTrans, Graphite et Nagios - DevoxxFR...
 
Paris Devops - Monitoring And Feature Toggle Pattern With JMX
Paris Devops - Monitoring And Feature Toggle Pattern With JMXParis Devops - Monitoring And Feature Toggle Pattern With JMX
Paris Devops - Monitoring And Feature Toggle Pattern With JMX
 
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
Paris NoSQL User Group - In Memory Data Grids in Action (without transactions...
 
GeeCon 2011 - NoSQL and In Memory Data Grids from a developer perspective
GeeCon 2011 - NoSQL and In Memory Data Grids from a developer perspectiveGeeCon 2011 - NoSQL and In Memory Data Grids from a developer perspective
GeeCon 2011 - NoSQL and In Memory Data Grids from a developer perspective
 
Java Application Monitoring with AppDynamics' Founder
Java Application Monitoring with AppDynamics' FounderJava Application Monitoring with AppDynamics' Founder
Java Application Monitoring with AppDynamics' Founder
 
Bonnes pratiques des applications java prêtes pour la production
Bonnes pratiques des applications java prêtes pour la productionBonnes pratiques des applications java prêtes pour la production
Bonnes pratiques des applications java prêtes pour la production
 
Soirée OSGi au Paris Jug (14/10/2008)
Soirée OSGi au Paris Jug (14/10/2008)Soirée OSGi au Paris Jug (14/10/2008)
Soirée OSGi au Paris Jug (14/10/2008)
 
Xebia Knowledge Exchange - Owasp Top Ten
Xebia Knowledge Exchange - Owasp Top TenXebia Knowledge Exchange - Owasp Top Ten
Xebia Knowledge Exchange - Owasp Top Ten
 

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

  • 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. 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. 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. 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. « 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

Notes de l'éditeur

  1. 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).
  2. 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