SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
Neopod: une base de données objet distribuée

                    Gaël L E M IGNOT — Bruno D UPUIS
                              Pilot Systems


                                      11 juillet 2011




 Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Plan


                                                              Commit
  1    Introduction
                                                              Ajout d’un nœud
          ZODB
                                                              « Mort » d’un nœud
          Implémentations                               4   Objectis
          existantes
                                                              Fonctionnement
  2    Architecture Générale                                  d’Objectis
         Schéma Général                                       Les limitations
         Réplication                                    5   Neoppod sur Objectis
  3    Opérations internes                                    Objectifs visés
         Connexion du client                                  La solution
         Lecture                                        6   Conclusion



       Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Introduction




                              Introduction




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
ZODB




 La ZODB (Zope Object Database)
     Écrite en Python
     Créée pour Zope
     Base de données Objet
     Respect des contraintes d’ACIDité




   Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Implémentations I




  FS Storage
      Un fichier en append-only
      Le process Python lit et écrit directement
      Pas de concurrence possible
      Mauvaise scalabilité




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Implémentations II


  ZEO
     Architecture client-server
      Le server lit et écrit dans un fichier en append-only
      Le server gère la concurrence entre les clients
      Cache sur les clients
      Le server gère les invalidations de cache
      Mauvaise scalabilité
      Aucune tolérance à la panne




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Implémentations III

  ZEO-Raid
     Réplication de type RAID-1
      Scalabilité limitée : chaque nœud possède l’intégralité de
      la base

  RelStorage
      Stockage des objets sous forme de pickles dans une base
      SQL
      PosgreSQL et MySQL
      Réplication possible au niveau SQL
      Scalabilité limitée : chaque nœud possède l’intégralité de
      la base


    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
NEO




 Historique
      2005 : Démarrage du projet par Nexedi (ERP5)
      2009 : Création du consortium System@tic
      fev. 2010 : Release
      Déploiements (ERP5, Plone3, Plone4)




   Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
System@tic




   Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Architecture Générale




          Architecture Générale




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Schéma général




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Réplication

  Nœud maître
     Réplication simple
      Un primaire et plusieurs secondaires
      En cas de panne, élection d’un nouveau primaire

  Nœud de stockage
      Choix du niveau de réplication
      Le nœud maître décide des données possédées par
      chaque nœud de stockage
      Le nœud maître maintient une table de partition qu’il
      partage avec les nœuds de stockage
      En cas de panne : le maître redistribue les données

    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Opérations internes




              Opérations internes




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Connexion

  Connexion du client




  Handshake
     Le client se connecte sur le nœud maître
      Le nœud maître enregistre le client
      Le nœud maître envoie au client la table de partition
      actuelle
    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Lecture




  Lecture
      Le client vérifie qu’il n’a pas l’objet en cache
       Le client trouve un nœud de Stockage qui contient la
       donnée
       Le client interroge directement le nœud de Stockage




     Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Commit I

  Commit




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Ajout d’un nœud de stockage


  Ajout d’un nœud




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
« Mort » d’un nœud de stockage

  « Mort » d’un nœud




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Objectis




                                     Objectis




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Présentation

  Objectis c’est...
       Une plateforme d’hébergement gratuit en Zope/Plone
       Actuellement, propose des sites en Plone 4
       Des instances contiennent des sites en Plone 1 à 3 et en
       Zope pur
       Nécessite un code de validation, via myplone

  Objectis c’est aussi...
       Une communauté avec un forum et un tracker de support
       Un site traduit en 8 langues
       18 257 sites au total


     Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
L’architecture




     Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Création d’un site




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Gestion des instances

  Les slots et les instances
      Chaque instance Zope possède un type (Plone 3, Plone 4,
      ...)
      Sur chaque instance Zope, on défini des slots (400 à 600)
      On regroupe les instances similaires sur une VM

  Utilisation des slots
        Les sites sont créés sur un Zope du bon type ayant des
        slots libres
      Supprimer un site libère le slot
      Quand il n’y a plus de slots, on ne peut plus créer de
      compte
      Il faut alors manuellement créer une autre instance
    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Objectis fonctionne mais...


  Sur la gestion des slots
       Créer une instance Objectis est assez délicat
       À cause du GIL, un Zope ne peut utiliser plus d’un cœur
       La répartition de charge entre les instances est irrégulière
       Une fois une instance pleine, on ne peut plus grand chose
       pour elle

  Autres problèmes
       Pas de tolérance de panne
       Instances vulnérables au DoS



     Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Neoppod sur Objectis




          Neoppod sur Objectis




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Les objectifs visés

  Meilleur tolérance de panne
      Une instance plantée ne doit pas couper ses sites
      À terme, on veut même pouvoir éteindre une VM sans
      couper le service

  Meilleur gestion des instances
      Éviter le problème de l’instance ayant tous les gros sites
      Éviter de devoir configurer sans cesse des nouvelles
      instances
      Pouvoir ajouter des ressources supplémentaires
      simplement


    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
La solution magique


  Neoppod
      On utilise Neoppod pour les données
      On met un cluster Neoppod par version de Plone

  Effets
       On a de la tolérance de panne entre les instances
      On peut ajouter des instances Zope et des noeuds de
      stockage, à la volée
      Les ressources sont totalement mutualisées




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
L’architecture




     Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
L’architecture complète




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Conclusion




                               Conclusion




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
Conclusion


  L’état actuel
       Plone 3.3 et 4.0 sous Neoppod
      Tout fonctionne tranquillement
      Pour l’instant, une VM par version de Plone

  Le futur
       Mise en place de tolérance de panne
      Répartition de charge entre les VMs
      Pour ça, il nous faut plus de monde !




    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée
En attendant


  Un cadeau
      Un code offert pour 50 sites : rmll2011-neo

  La page de pub
      Pilot Systems, société de services en logiciels libres :
      http://www.pilotsystems.net
      Slides en licence CC-By-Sa
      http://contributions.pilotsystems.net/

                                       Des questions ?



    Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems   Neopod: une base de données objet distribuée

Más contenido relacionado

Similar a Neopod: une base de données objet distribuée

memoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagiosmemoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagiosabouaalexis
 
VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023SpikeeLabs
 
Entity framework core 2 vs micro orm performances
Entity framework core 2 vs micro orm performancesEntity framework core 2 vs micro orm performances
Entity framework core 2 vs micro orm performancesMSDEVMTL
 
08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentationOpenCascade
 
MongoDB day Paris 2012
MongoDB day Paris 2012MongoDB day Paris 2012
MongoDB day Paris 2012FastConnect
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Jean Gabès
 
Retour BreizhCamp 2023
Retour BreizhCamp 2023 Retour BreizhCamp 2023
Retour BreizhCamp 2023 SpikeeLabs
 
Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009JUG Lausanne
 
Concevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto ProjectConcevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto ProjectChristian Charreyre
 
Spring 3 en production
Spring 3 en productionSpring 3 en production
Spring 3 en productionJulien Dubois
 
Yocto une solution robuste pour construire des applications à fort contenu ap...
Yocto une solution robuste pour construire des applications à fort contenu ap...Yocto une solution robuste pour construire des applications à fort contenu ap...
Yocto une solution robuste pour construire des applications à fort contenu ap...Christian Charreyre
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busyboxAyoub Rouzi
 
121102 aetc_consultingconf4d
121102 aetc_consultingconf4d121102 aetc_consultingconf4d
121102 aetc_consultingconf4dNathalie Richomme
 
Indexation d'une base documentaire pour Liberation
Indexation d'une base documentaire pour LiberationIndexation d'une base documentaire pour Liberation
Indexation d'une base documentaire pour LiberationParis, France
 
Monitorez votre solution IoT avec Stream Analytics et Power BI
Monitorez votre solution IoT avec Stream Analytics et Power BIMonitorez votre solution IoT avec Stream Analytics et Power BI
Monitorez votre solution IoT avec Stream Analytics et Power BIJoël Crest
 

Similar a Neopod: une base de données objet distribuée (20)

Installation open erp
Installation open erpInstallation open erp
Installation open erp
 
Javavs net
Javavs netJavavs net
Javavs net
 
Workflow Ortolang
Workflow OrtolangWorkflow Ortolang
Workflow Ortolang
 
Fully Automated Nagios Jm2L 2009
Fully Automated Nagios Jm2L 2009Fully Automated Nagios Jm2L 2009
Fully Automated Nagios Jm2L 2009
 
memoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagiosmemoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagios
 
VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023
 
Entity framework core 2 vs micro orm performances
Entity framework core 2 vs micro orm performancesEntity framework core 2 vs micro orm performances
Entity framework core 2 vs micro orm performances
 
08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation
 
MongoDB day Paris 2012
MongoDB day Paris 2012MongoDB day Paris 2012
MongoDB day Paris 2012
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)
 
Retour BreizhCamp 2023
Retour BreizhCamp 2023 Retour BreizhCamp 2023
Retour BreizhCamp 2023
 
Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009
 
Concevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto ProjectConcevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto Project
 
Spring 3 en production
Spring 3 en productionSpring 3 en production
Spring 3 en production
 
Yocto une solution robuste pour construire des applications à fort contenu ap...
Yocto une solution robuste pour construire des applications à fort contenu ap...Yocto une solution robuste pour construire des applications à fort contenu ap...
Yocto une solution robuste pour construire des applications à fort contenu ap...
 
Pinhole story
Pinhole storyPinhole story
Pinhole story
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busybox
 
121102 aetc_consultingconf4d
121102 aetc_consultingconf4d121102 aetc_consultingconf4d
121102 aetc_consultingconf4d
 
Indexation d'une base documentaire pour Liberation
Indexation d'une base documentaire pour LiberationIndexation d'une base documentaire pour Liberation
Indexation d'une base documentaire pour Liberation
 
Monitorez votre solution IoT avec Stream Analytics et Power BI
Monitorez votre solution IoT avec Stream Analytics et Power BIMonitorez votre solution IoT avec Stream Analytics et Power BI
Monitorez votre solution IoT avec Stream Analytics et Power BI
 

Más de Paris, France

Transformation digitale
Transformation digitaleTransformation digitale
Transformation digitaleParis, France
 
Django Hacking : Comment dresser les serpents guitaristes
Django Hacking : Comment dresser les serpents guitaristesDjango Hacking : Comment dresser les serpents guitaristes
Django Hacking : Comment dresser les serpents guitaristesParis, France
 
SeSQL : un moteur de recherche en Python et PostgreSQL
SeSQL : un moteur de recherche en Python et PostgreSQLSeSQL : un moteur de recherche en Python et PostgreSQL
SeSQL : un moteur de recherche en Python et PostgreSQLParis, France
 
Conférence Sesql - DjangoCong 2011
Conférence Sesql - DjangoCong 2011Conférence Sesql - DjangoCong 2011
Conférence Sesql - DjangoCong 2011Paris, France
 
API Cockpit : faites communiquer vos applications web
API Cockpit : faites communiquer vos applications webAPI Cockpit : faites communiquer vos applications web
API Cockpit : faites communiquer vos applications webParis, France
 
Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...
Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...
Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...Paris, France
 
Plone Conference 2008 Lightning Talk Static Zope Rpx
Plone Conference 2008 Lightning Talk Static Zope RpxPlone Conference 2008 Lightning Talk Static Zope Rpx
Plone Conference 2008 Lightning Talk Static Zope RpxParis, France
 
Neoppod, discloses first open source transactional NoSQL Object database for ...
Neoppod, discloses first open source transactional NoSQL Object database for ...Neoppod, discloses first open source transactional NoSQL Object database for ...
Neoppod, discloses first open source transactional NoSQL Object database for ...Paris, France
 
Cockpit, gestion de contacts et d'emailing
Cockpit, gestion de contacts et d'emailingCockpit, gestion de contacts et d'emailing
Cockpit, gestion de contacts et d'emailingParis, France
 
Plone, du site web à la gestion documentaire
Plone, du site web à la gestion documentairePlone, du site web à la gestion documentaire
Plone, du site web à la gestion documentaireParis, France
 
Les critères de choix d'un intranet
Les critères de choix d'un intranetLes critères de choix d'un intranet
Les critères de choix d'un intranetParis, France
 
Virtualisation Cloud Computing Saas Open Source
Virtualisation Cloud Computing Saas Open SourceVirtualisation Cloud Computing Saas Open Source
Virtualisation Cloud Computing Saas Open SourceParis, France
 
Partenariat Exo Platform/Pilot Systems
Partenariat Exo Platform/Pilot SystemsPartenariat Exo Platform/Pilot Systems
Partenariat Exo Platform/Pilot SystemsParis, France
 
Open World Forum 2009 Synthesis
Open World Forum 2009 SynthesisOpen World Forum 2009 Synthesis
Open World Forum 2009 SynthesisParis, France
 
Open World Forum 2009 Presentation
Open World Forum 2009 PresentationOpen World Forum 2009 Presentation
Open World Forum 2009 PresentationParis, France
 
Deliverance, la puissance de la gestion de contenu Plone appliquee aux themes...
Deliverance, la puissance de la gestion de contenu Plone appliquee aux themes...Deliverance, la puissance de la gestion de contenu Plone appliquee aux themes...
Deliverance, la puissance de la gestion de contenu Plone appliquee aux themes...Paris, France
 
Deploiement de Plone et Deliverance avec Ubuntu VM Builder
Deploiement de Plone et Deliverance avec Ubuntu VM BuilderDeploiement de Plone et Deliverance avec Ubuntu VM Builder
Deploiement de Plone et Deliverance avec Ubuntu VM BuilderParis, France
 
Deliverance, la puissance de la gestion de contenu Plone appliquée aux thèmes...
Deliverance, la puissance de la gestion de contenu Plone appliquée aux thèmes...Deliverance, la puissance de la gestion de contenu Plone appliquée aux thèmes...
Deliverance, la puissance de la gestion de contenu Plone appliquée aux thèmes...Paris, France
 
Construire un module enfichable (pluggable) et dynamique pour Plone
Construire un module enfichable (pluggable) et dynamique pour PloneConstruire un module enfichable (pluggable) et dynamique pour Plone
Construire un module enfichable (pluggable) et dynamique pour PloneParis, France
 
La virtualisation dans le Datacenter
La virtualisation dans le DatacenterLa virtualisation dans le Datacenter
La virtualisation dans le DatacenterParis, France
 

Más de Paris, France (20)

Transformation digitale
Transformation digitaleTransformation digitale
Transformation digitale
 
Django Hacking : Comment dresser les serpents guitaristes
Django Hacking : Comment dresser les serpents guitaristesDjango Hacking : Comment dresser les serpents guitaristes
Django Hacking : Comment dresser les serpents guitaristes
 
SeSQL : un moteur de recherche en Python et PostgreSQL
SeSQL : un moteur de recherche en Python et PostgreSQLSeSQL : un moteur de recherche en Python et PostgreSQL
SeSQL : un moteur de recherche en Python et PostgreSQL
 
Conférence Sesql - DjangoCong 2011
Conférence Sesql - DjangoCong 2011Conférence Sesql - DjangoCong 2011
Conférence Sesql - DjangoCong 2011
 
API Cockpit : faites communiquer vos applications web
API Cockpit : faites communiquer vos applications webAPI Cockpit : faites communiquer vos applications web
API Cockpit : faites communiquer vos applications web
 
Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...
Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...
Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...
 
Plone Conference 2008 Lightning Talk Static Zope Rpx
Plone Conference 2008 Lightning Talk Static Zope RpxPlone Conference 2008 Lightning Talk Static Zope Rpx
Plone Conference 2008 Lightning Talk Static Zope Rpx
 
Neoppod, discloses first open source transactional NoSQL Object database for ...
Neoppod, discloses first open source transactional NoSQL Object database for ...Neoppod, discloses first open source transactional NoSQL Object database for ...
Neoppod, discloses first open source transactional NoSQL Object database for ...
 
Cockpit, gestion de contacts et d'emailing
Cockpit, gestion de contacts et d'emailingCockpit, gestion de contacts et d'emailing
Cockpit, gestion de contacts et d'emailing
 
Plone, du site web à la gestion documentaire
Plone, du site web à la gestion documentairePlone, du site web à la gestion documentaire
Plone, du site web à la gestion documentaire
 
Les critères de choix d'un intranet
Les critères de choix d'un intranetLes critères de choix d'un intranet
Les critères de choix d'un intranet
 
Virtualisation Cloud Computing Saas Open Source
Virtualisation Cloud Computing Saas Open SourceVirtualisation Cloud Computing Saas Open Source
Virtualisation Cloud Computing Saas Open Source
 
Partenariat Exo Platform/Pilot Systems
Partenariat Exo Platform/Pilot SystemsPartenariat Exo Platform/Pilot Systems
Partenariat Exo Platform/Pilot Systems
 
Open World Forum 2009 Synthesis
Open World Forum 2009 SynthesisOpen World Forum 2009 Synthesis
Open World Forum 2009 Synthesis
 
Open World Forum 2009 Presentation
Open World Forum 2009 PresentationOpen World Forum 2009 Presentation
Open World Forum 2009 Presentation
 
Deliverance, la puissance de la gestion de contenu Plone appliquee aux themes...
Deliverance, la puissance de la gestion de contenu Plone appliquee aux themes...Deliverance, la puissance de la gestion de contenu Plone appliquee aux themes...
Deliverance, la puissance de la gestion de contenu Plone appliquee aux themes...
 
Deploiement de Plone et Deliverance avec Ubuntu VM Builder
Deploiement de Plone et Deliverance avec Ubuntu VM BuilderDeploiement de Plone et Deliverance avec Ubuntu VM Builder
Deploiement de Plone et Deliverance avec Ubuntu VM Builder
 
Deliverance, la puissance de la gestion de contenu Plone appliquée aux thèmes...
Deliverance, la puissance de la gestion de contenu Plone appliquée aux thèmes...Deliverance, la puissance de la gestion de contenu Plone appliquée aux thèmes...
Deliverance, la puissance de la gestion de contenu Plone appliquée aux thèmes...
 
Construire un module enfichable (pluggable) et dynamique pour Plone
Construire un module enfichable (pluggable) et dynamique pour PloneConstruire un module enfichable (pluggable) et dynamique pour Plone
Construire un module enfichable (pluggable) et dynamique pour Plone
 
La virtualisation dans le Datacenter
La virtualisation dans le DatacenterLa virtualisation dans le Datacenter
La virtualisation dans le Datacenter
 

Último

KIT-COPILOT and more Article du 20240311
KIT-COPILOT and more Article du 20240311KIT-COPILOT and more Article du 20240311
KIT-COPILOT and more Article du 20240311Erol GIRAUDY
 
Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...
Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...
Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...Infopole1
 
Mes succès sur Microsoft LEARN et examens
Mes succès sur Microsoft LEARN et examensMes succès sur Microsoft LEARN et examens
Mes succès sur Microsoft LEARN et examensErol GIRAUDY
 
Les Metiers de l'Intelligence Artificielle
Les Metiers de l'Intelligence ArtificielleLes Metiers de l'Intelligence Artificielle
Les Metiers de l'Intelligence ArtificielleErol GIRAUDY
 
Installation de Sylius 2.0 et découverte du nouveau backoffice en Bootstrap
Installation de Sylius 2.0 et découverte du nouveau backoffice en BootstrapInstallation de Sylius 2.0 et découverte du nouveau backoffice en Bootstrap
Installation de Sylius 2.0 et découverte du nouveau backoffice en BootstrapMaxime Huran 🌈
 
The Importance of Indoor Air Quality (French)
The Importance of Indoor Air Quality (French)The Importance of Indoor Air Quality (French)
The Importance of Indoor Air Quality (French)IES VE
 

Último (6)

KIT-COPILOT and more Article du 20240311
KIT-COPILOT and more Article du 20240311KIT-COPILOT and more Article du 20240311
KIT-COPILOT and more Article du 20240311
 
Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...
Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...
Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...
 
Mes succès sur Microsoft LEARN et examens
Mes succès sur Microsoft LEARN et examensMes succès sur Microsoft LEARN et examens
Mes succès sur Microsoft LEARN et examens
 
Les Metiers de l'Intelligence Artificielle
Les Metiers de l'Intelligence ArtificielleLes Metiers de l'Intelligence Artificielle
Les Metiers de l'Intelligence Artificielle
 
Installation de Sylius 2.0 et découverte du nouveau backoffice en Bootstrap
Installation de Sylius 2.0 et découverte du nouveau backoffice en BootstrapInstallation de Sylius 2.0 et découverte du nouveau backoffice en Bootstrap
Installation de Sylius 2.0 et découverte du nouveau backoffice en Bootstrap
 
The Importance of Indoor Air Quality (French)
The Importance of Indoor Air Quality (French)The Importance of Indoor Air Quality (French)
The Importance of Indoor Air Quality (French)
 

Neopod: une base de données objet distribuée

  • 1. Neopod: une base de données objet distribuée Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems 11 juillet 2011 Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 2. Plan Commit 1 Introduction Ajout d’un nœud ZODB « Mort » d’un nœud Implémentations 4 Objectis existantes Fonctionnement 2 Architecture Générale d’Objectis Schéma Général Les limitations Réplication 5 Neoppod sur Objectis 3 Opérations internes Objectifs visés Connexion du client La solution Lecture 6 Conclusion Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 3. Introduction Introduction Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 4. ZODB La ZODB (Zope Object Database) Écrite en Python Créée pour Zope Base de données Objet Respect des contraintes d’ACIDité Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 5. Implémentations I FS Storage Un fichier en append-only Le process Python lit et écrit directement Pas de concurrence possible Mauvaise scalabilité Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 6. Implémentations II ZEO Architecture client-server Le server lit et écrit dans un fichier en append-only Le server gère la concurrence entre les clients Cache sur les clients Le server gère les invalidations de cache Mauvaise scalabilité Aucune tolérance à la panne Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 7. Implémentations III ZEO-Raid Réplication de type RAID-1 Scalabilité limitée : chaque nœud possède l’intégralité de la base RelStorage Stockage des objets sous forme de pickles dans une base SQL PosgreSQL et MySQL Réplication possible au niveau SQL Scalabilité limitée : chaque nœud possède l’intégralité de la base Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 8. NEO Historique 2005 : Démarrage du projet par Nexedi (ERP5) 2009 : Création du consortium System@tic fev. 2010 : Release Déploiements (ERP5, Plone3, Plone4) Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 9. System@tic Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 10. Architecture Générale Architecture Générale Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 11. Schéma général Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 12. Réplication Nœud maître Réplication simple Un primaire et plusieurs secondaires En cas de panne, élection d’un nouveau primaire Nœud de stockage Choix du niveau de réplication Le nœud maître décide des données possédées par chaque nœud de stockage Le nœud maître maintient une table de partition qu’il partage avec les nœuds de stockage En cas de panne : le maître redistribue les données Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 13. Opérations internes Opérations internes Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 14. Connexion Connexion du client Handshake Le client se connecte sur le nœud maître Le nœud maître enregistre le client Le nœud maître envoie au client la table de partition actuelle Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 15. Lecture Lecture Le client vérifie qu’il n’a pas l’objet en cache Le client trouve un nœud de Stockage qui contient la donnée Le client interroge directement le nœud de Stockage Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 16. Commit I Commit Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 17. Ajout d’un nœud de stockage Ajout d’un nœud Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 18. « Mort » d’un nœud de stockage « Mort » d’un nœud Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 19. Objectis Objectis Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 20. Présentation Objectis c’est... Une plateforme d’hébergement gratuit en Zope/Plone Actuellement, propose des sites en Plone 4 Des instances contiennent des sites en Plone 1 à 3 et en Zope pur Nécessite un code de validation, via myplone Objectis c’est aussi... Une communauté avec un forum et un tracker de support Un site traduit en 8 langues 18 257 sites au total Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 21. L’architecture Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 22. Création d’un site Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 23. Gestion des instances Les slots et les instances Chaque instance Zope possède un type (Plone 3, Plone 4, ...) Sur chaque instance Zope, on défini des slots (400 à 600) On regroupe les instances similaires sur une VM Utilisation des slots Les sites sont créés sur un Zope du bon type ayant des slots libres Supprimer un site libère le slot Quand il n’y a plus de slots, on ne peut plus créer de compte Il faut alors manuellement créer une autre instance Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 24. Objectis fonctionne mais... Sur la gestion des slots Créer une instance Objectis est assez délicat À cause du GIL, un Zope ne peut utiliser plus d’un cœur La répartition de charge entre les instances est irrégulière Une fois une instance pleine, on ne peut plus grand chose pour elle Autres problèmes Pas de tolérance de panne Instances vulnérables au DoS Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 25. Neoppod sur Objectis Neoppod sur Objectis Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 26. Les objectifs visés Meilleur tolérance de panne Une instance plantée ne doit pas couper ses sites À terme, on veut même pouvoir éteindre une VM sans couper le service Meilleur gestion des instances Éviter le problème de l’instance ayant tous les gros sites Éviter de devoir configurer sans cesse des nouvelles instances Pouvoir ajouter des ressources supplémentaires simplement Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 27. La solution magique Neoppod On utilise Neoppod pour les données On met un cluster Neoppod par version de Plone Effets On a de la tolérance de panne entre les instances On peut ajouter des instances Zope et des noeuds de stockage, à la volée Les ressources sont totalement mutualisées Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 28. L’architecture Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 29. L’architecture complète Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 30. Conclusion Conclusion Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 31. Conclusion L’état actuel Plone 3.3 et 4.0 sous Neoppod Tout fonctionne tranquillement Pour l’instant, une VM par version de Plone Le futur Mise en place de tolérance de panne Répartition de charge entre les VMs Pour ça, il nous faut plus de monde ! Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée
  • 32. En attendant Un cadeau Un code offert pour 50 sites : rmll2011-neo La page de pub Pilot Systems, société de services en logiciels libres : http://www.pilotsystems.net Slides en licence CC-By-Sa http://contributions.pilotsystems.net/ Des questions ? Gaël L E M IGNOT — Bruno D UPUIS Pilot Systems Neopod: une base de données objet distribuée