1. introduction
    1. analyse de l'échec du vol inaugural d'Ariane 5
      1. ariane5.pdf
  2. gestion des pannes
    1. tout peut tomber en panne
      1. matériel/logiciel
      2. réseau
      3. causes
        1. usure
        2. bugs
          1. système mal testé
          2. précipitation dans mise sur le marché
        3. humaines
        4. environnementales
    2. pannes inévitables
      1. nombreux sous-systèmes indépendants
    3. deux aspects
      1. tolérance aux pannes
        1. éviter les comportements incorrects
        2. transactions
      2. haute disponibilité
        1. éviter les interruptions de service
        2. importance de la détection rapide des pannes
    4. modèles de pannes
      1. panne-arrêt
        1. assez facile à gérer
        2. pas réaliste
      2. ralentissement
        1. quelques algorithmes existent
      3. pannes bizantines
        1. très difficiles à gérer
    5. permanence des effets
      1. permanentes
        1. disponibilité
          1. MTBF/(MTBF+MTTR)
      2. transitoires
        1. dans circonstances peu probables
        2. relacer la machine/le service
    6. traitement
      1. actions
        1. détection
        2. confinement
        3. masquage
      2. vue en couches
        1. panne = comportement exceptionnel dans une couche
        2. transformer en événement attendu pour couche supérieure
        3. rendre invisible pour autres couches
      3. technique matérielle
        1. redondance triple modulaire
        2. vote sur 3 systèmes
        3. protéger le système de vote
          1. le + simple possible
          2. sur machine fiabilisée
      4. réplication
  3. reprise après panne
    1. après panne et réparation
      1. récupération état
    2. techniques
      1. points de passage
        1. enregistrement stable de l'état
      2. journalisation
        1. enregistrement stable des messages reçus
      3. retour en arrière
        1. des autres
        2. pour revenir à un état consistant
          1. ligne de reprise
    3. problèmes
      1. existence d'une ligne de reprise
        1. points de passage
      2. retrouver la meilleure
        1. retour en arrière
      3. difficultés
        1. messages
          1. orphelins
          2. dupliqués
        2. retours en arrière en cascade
        3. bégaiement
    4. choix
      1. journaliser ou non les messages reçus
        1. flexibilité pendant récupération
        2. coût de stockage
        3. déterminisme des processus nécessaire
      2. coordination de l'enregistrement de l'état
    5. algorithmes
      1. checkpoint sans coordination
        1. pas de garantie
        2. espoir que les retours en arrières seront
          1. peu fréquents
          2. limités
      2. checkpoint avec coordination
        1. possibilité de panne pendant enregistrement
        2. ramasse-miette
          1. matrices d'estampilles
        3. checkpoint incrémental
      3. journalisation synchrone
        1. avec coordination
        2. enregistrement messages avant délivrance
        3. récupération = rejouer les messages
        4. délais peuvent être inacceptables
      4. journalisation asynchrone
        1. sans coordination
        2. journalisation n'importe quand
        3. questions
          1. trouver ligne de reprise
          2. quand peut-on effacer vieux messages ?
        4. seuls messages permettant récupération doivent être enregistré
          1. journalisation adaptative
  4. réplication
    1. services
      1. état ?
        1. modélisation avec machine à états
          1. indépendance au temps
        2. tolérance à n pannes
          1. n+1 répliques
          2. reçoivent toutes
          3. mêmes entrées
          4. dans même ordre
          5. + vote
          6. doit être fiable
          7. respecter au moins causalité
        3. +
          1. modèle conceptuel
          2. masque vote
          3. indiscernable d'une seule machine
        4. -
          1. trop coûteux
      2. primaire/secours
        1. principe
          1. communication avec primaire
          2. secours prend relai en cas de panne
        2. +
          1. simplicité
          2. performance
        3. -
          1. que faire si primaire donne un mauvais résultat ?
          2. des requêtes peuvent être perdues
        4. protocoles
          1. nécessités
          2. 1 seul primaire à un moment donné
          3. 1 seul primaire pour chaque client
          4. interruptions de service bornées
          5. requêtes traitées seulement sur primaire
          6. battements de coeur
      3. Pacemaker
    2. ressources
      1. lesquelles ?
        1. mémoire
        2. fichiers
        3. bases de données
      2. options de gestion
        1. lecture
          1. d'un serveur primaire
          2. de n'importe que serveur
          3. d'un quorum
        2. écriture
          1. sur le primaire
          2. sur tous
          3. mis à jour atomique
          4. sur tous les disponibles
          5. sur un quorum
          6. propagation lente
        3. stratégies de réplication
          1. lit d'un / écrit sur tous
          2. sérialisation
          3. pas de concurrence
          4. lit d'un / écrit sur tous les disponibles
          5. plus de sérialisation
          6. en cas de panne
          7. lit d'un quorum / écrit sur un quorum
          8. bon compromis
          9. lit d'un / propagation lente
          10. haute disponibilité
          11. en cas de probabilité de pannes élevée
          12. utiliser des vecteurs d'estampilles pour garantir causalité
      3. options avec migration
        1. possibilités lecture/écriture
          1. accès distant
          2. migration
          3. réplication
        2. stratégies
          1. serveur distant
          2. accés distant en lecture et en écriture
          3. serveur dynamique
          4. migration en lecture et en écriture
          5. lecture réplication / écriture migration
          6. choix populaire
          7. sémantique claire
          8. consistence forte
          9. lecture réplication / écriture réplication
          10. consistence forte difficile
          11. possibilité d'utiliser validation à deux phases