Semaine 5 : Reprise sur panne

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

Implémentation des SGBD

Structure fonctionnelle d un SGBD

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

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

Introduction. René J. Chevance

Réplication des données

Un concept multi-centre de données traditionnel basé sur le DNS

Cours A7 : Temps Réel

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Données Réparties. Thibault BERNARD.

Technologie SDS (Software-Defined Storage) de DataCore

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

NIMEGUE V3. Fiche technique 3.07 : Sauvegarde / Restauration manuelle

Ordonnancement temps réel

Gestion répartie de données - 1

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Tux Paint. 1. Informations générales sur le logiciel. Auteur : Bill Kendrick et l équipe de développement de New Breed Software

Manuel d'installation de GESLAB Client Lourd

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

IV- Comment fonctionne un ordinateur?

Intelligence Artificielle Planification

Vous êtes bien à la bonne présentation, c est juste que je trouvais que le titre de cette présentation étais un peu long,

3. La SGA ou System global Area

SQL Server Database Engine : Part1. Modes de récupération / Sauvegardes / Checkpoint

Temps Réel. Jérôme Pouiller Septembre 2011

L exclusion mutuelle distribuée

Eléments de base de la sécurité des bases de données

PLAN. Industrialisateur Open Source LANS DE SECOURS INFORMATIQUES PRINCIPES GENERAUX ETAT DE L ART SELON BV ASSOCIATES

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Conception des systèmes répartis

Encryptions, compression et partitionnement des données

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Licence Sciences et Technologies Examen janvier 2010

SERVEUR DE SAUVEGARDE POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

PGI EBP Openline

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

PG208, Projet n 3 : Serveur HTTP évolué

Serveur de sauvegarde à moindre coût

Cours Bases de données

Fonctions homographiques

«clustering» et «load balancing» avec Zope et ZEO

CH.3 SYSTÈMES D'EXPLOITATION

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

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Système binaire. Algèbre booléenne

System Center Data Protection Manager 2010 (DPM2010) Mettre en œuvre un réseau de backup

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Bases de données documentaires et distribuées Cours NFE04

Alors pour vous simplifiez la vie, voici un petit tuto sur le logiciel de sauvegarde (gratuit) SyncBack.

La replication dans PostgreSQL

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

Bien architecturer une application REST

GSB/LOT 3 : Logiciel de backup

Systemes d'exploitation des ordinateurs

FAMILLE EMC RECOVERPOINT

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Systèmes et algorithmes répartis

Des multifonctions grand format rapides pour des performances optimales

Les serveurs Dell dans la distribution automobile Le cas des Concessions Renault

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

Architecture des ordinateurs

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Chapitre 1 : Introduction aux bases de données

Bases de données avancées Concurrence d'accès et reprise

Gestion des sauvegardes

Sommaire. La haute-disponibilité. L'offre OpenSource. Les systèmes tiers. MySQL

PREMIERE DEMANDE D UNE CARTE NATIONALE D IDENTITE

Antemeta revient sur son partenariat dans la Flash avec Pure Storage et sur son activité

Sauvegarder / restaurer. ses données personnelles. Avec Windows 7. LoRdi Dell de 2011 à 2014

Le Logiciel de Facturation ultra simplifié spécial Auto-Entrepreneur

SOMMAIRE. 1 Pourquoi sauvegarder? Sur quel support? La procédure idéale... 5 GUIDE DE LA SAUVEGARDE

Introduction aux SGBDR

Veeam Backup & Replication v6

CONFIGURATION DE BASE. 6, Rue de l'industrie BP130 SOULTZ GUEBWILLER Cedex. Fax.: Tel.:

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Clé USB. Quel type de données peut contenir une clé USB?

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

Sauvegarde et archivage

Leçon 1 : Les principaux composants d un ordinateur

Administration des bases de données relationnelles Part I

Haute disponibilité avec PostgreSQL

Solution Haute Disponibilité pour Linux

GUIDE. Guide du bon. usagedu. La rareté ne réside plus dans la recherche d informations, mais dans la capacité à la traiter Cabinet d études Gartner.

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Sauvegarder et restaurer les données PMB

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement

J ai chargé l ensemble des données d archivage Outlook (.pst) nécessaire 0. Je sais ou/comment je peux commander des logiciels en option

Consolidation Stockage.

Fonctionnalités d Acronis :

Tests de performance du matériel

TP Déploiement de réseaux IP sous Linux et MS Windows sur une infrastructure virtualisée

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

Introduction à la Programmation Parallèle: MPI

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

Transcription:

C018SA-W5-S1 1

Semaine 5 : Reprise sur panne 1. Introduction 2. Lectures et écritures, buffer et disque 3. Première approche 4. Le journal des transactions 5. Algorithmes de reprise sur panne 6. Pannes de disque 2Philippe Rigaux

La notion de panne Panne = tout dysfonctionnement affectant le comportement du système Par souci de simplicité on va distinguer deux types de panne (quelle que soit la cause). Panne légère : affecte la RAM du serveur de données, pas les disques Panne lourde : affecte un disque Dans un premier temps, on se concentre sur les pannes légères. 3

Garantie en cas de panne Souvenons-nous des propriétés des transactions. Durabilité et atomicité : quand le système rend la main après un commit, toutes les modifications de la transaction deviennent permanentes. Recouvrabilité et Atomicité : tant qu un commit n a pas eu lieu, toutes les modifications de la transaction doivent pouvoir être annulées par un rollback. 4

Garantir un commit Pour garantir le commit, la condition suivante doit être respectée. Les données modifiées par une transaction validée doivent être sur le disque On désigne ces données par le terme "image après". 5

Garantir un rollback Pour garantir le rollback, la condition suivante doit être respectée. Les données avant modification doivent être sur le disque On désigne ces données par le terme "image avant". 6

L état de la base État de la base : état résultant de l ensemble des transactions validées depuis l origine. On résume ce qui précède par : L état de la base doit toujours être sur le disque. 7

La difficulté On peut résumer la difficulté ainsi : Jusqu au commit, c est l image avant qui fait partie de l état de la base. au commit, l image après remplace l image avant dans l état de la base. Problème : Comment assurer que ce remplacement s effectue de manière atomique ("tout ou rien")? Ce n est pas facile... 8

Les séquences 1. Introduction 2. Lectures et écritures, buffer et disque 3. Première approche 4. Le journal des transactions 5. Algorithmes de reprise sur panne 6. Pannes de disque 9

Le buffer et le disque 10

Opération de lecture Toute opération de lecture contient l adresse du bloc à lire. Si le bloc est dans le buffer, le système accède à la donnée dans le bloc, et la retourne. Sinon il faut d abord lire un bloc du disque, et le placer dans le buffer. Le SGBD garde en mémoire les blocs après lecture. 11

Stratégie de remplacement Que faire quand la mémoire est pleine? L algorithme le plus courant est dit Least Recently Used (LRU). La "victime" est le bloc dont la dernière date de lecture logique est la plus ancienne. Ce bloc est alors soustrait de la mémoire centrale. Le nouveau bloc vient le remplacer. 12

Opération de mise à jour On trouve le bloc (comme pour une lecture), on modifie la donnée. Faut-il écrire le bloc ou non? 13

Mise à jour immédiate Dès qu un bloc est modifié, on écrit sur le disque pour synchroniser. Peu performant : écritures aléatoires On écrase l image avant 14

Mise à jour différée On interdit l écriture d un bloc modifié avant le commit Risque de surcharger le buffer Préserve l image avant 15

Mise à jour opportuniste C est la méthode la plus souple : on attend la meilleure opportunité pour synchroniser le buffer et le disque. Le moins pénalisant ; permet des écritures successives dans le buffer. 16

Résumé : lecture/écriture, buffer et disque Retenir : 1. Une partie de la base est copiée dans le buffer. 2. Tout mise à jour s effectue d abord dans le buffer. 3. La synchronisation avec le disque peut s effectuer de manière immédiate, différée, ou opportuniste. La méthode de synchronisation a un impact fort sur la reprise sur panne. 17

Semaine 5 : Reprise sur panne 1. Introduction 2. Lectures et écritures, buffer et disque 3. Première approche 4. Le journal des transactions 5. Algorithmes de reprise sur panne 6. Pannes de disque 18Philippe Rigaux

Comment reprendre sur panne légère Une transaction s exécute ; l image avant est sur le disque ; l image après est dans le buffer. Nous disposons de plusieurs options d écriture : immédiate, différée, opportuniste. Si une panne légère survient : le contenu de la RAM est perdu. Existe-t-il une stratégie possible de reprise sur panne? 19

Scénario 1 : avec écritures opportunistes Supposons que les écritures fonctionnent en mode opportuniste. Si un bloc contenant des données non validées est écrit, l image avant est écrasée. Pas de reprise possible. Vrai, à plus forte raison, avec écritures immédiates. 20

Scénario 2 : avec écritures différées Tentons une approche plus raisonnée. ne jamais écrire un nuplet modifié avant le commit ; au moment du commit de T, forcer l écriture de tous les blocs modifiés par T. Le commit et le rollback. Le commit transfère l image après du buffer vers le disque Le rollback supprime les blocs modifiés : on en revient à l image avant. 21

Pourquoi ça ne marche pas? Une panne survient après quelques écritures mais avant l enregistrement du commit. rollback impossible si je ne garde pas sur disque les données après et avant modification. 22

Résumé : buffer, disque et reprise sur panne Au moment de l exécution de l ordre commit l image avant doit être sur disque : permet un rollback jusqu à la complétion. l image après doit être sur disque : assure la reprise sur panne (légère). De plus, le mode d écriture opportuniste doit être privilégié car mode différé encombre le buffer. mode immédiat écritures aléatoires. La solution s appelle le journal des transactions. 23

Semaine 5 : Reprise sur panne 1. Introduction 2. Lectures et écritures, buffer et disque 3. Première approche 4. Le journal des transactions 5. Algorithmes de reprise sur panne 6. Pannes de disque 24Philippe Rigaux

Le journal des transactions (log) Le fichier des transactions, ou log, un fichier complémentaire à la base de données. le système y écrit séquentiellement le log dispose de son propre buffer on n efface jamais un enregistrement du log La reprise sur panne repose sur la stratégie suivannte : la base et son buffer sont en écriture opportuniste le log et son buffer sont en écriture immédiate Le log contient l historique des mises à jour. 25

Le système d entrées/sorties avec log 26

Contenu du log Toutes les instructions de mise à jour. Chaque ligne contient un enregistrement d une des formes suivantes. start(t) write(t, x, old_val, new_val) commit(t) rollback(t) checkpoint Le write peut être représenté sous forme logique (instructions) ou physique (enregistrements). 27

Le log et la gestion des commit La règle suivante est dite point de commit : au commit, on force l écriture des modifications effectuées dans le log Conséquences L état de la base peut être reconstitué à partir du log Une transaction est validée quand l instruction commit est écrite dans le log 28

Illustration : après un commit 29

Le log et la gestion des rollback Un bloc modifié mais pas encore validé peut être écrit dans la base. En cas de panne, il faudra reprendre l image avant. La règle suivante est dite write-ahead logging quand un bloc modifié est écrit dans la base, il faut d abord écrire les modifications dans le log. Conséquence Le log contient des modifications qui n ont pas été validées. 30

Illustration du write-ahead 31

Résumé : le log Retenir : Le log est un fichier séquentiel dans lequel on enregistre toutes les mises à jour un commit est effectif quand l instruction est écrite dans le log l état de la base est dans le log un rollback peut s effectuer en reprenant l image avant dans le log performances : on laisse la base et son buffer en mode d écriture opportuniste Prochaine étape : l algorithme de reprise sur panne 32

Semaine 5 : Reprise sur panne 1. Introduction 2. Lectures et écritures, buffer et disque 3. Première approche 4. Le journal des transactions 5. Algorithmes de reprise sur panne 6. Pannes de disque 33Philippe Rigaux

Refaire et défaire En cas de panne légère, l écriture opportuniste a pour conséquences : Des modifications validées qui ne sont pas encore dans la base. Inversement, des modifications non validées qui sont dans la base. À la reprise, il faut donc Refaire (Redo) les transactions validées ; Défaire (Undo) les transactions en cours. Ces deux opérations sont basées sur le journal. 34

Les informations du log On peut reconstituer, à partir du log la liste L V des transactions validées : on trouve un commit dans le log la liste L A des transactions actives ou annulées : pas de commit dans le log l image après (new_val) et l image avant (old_val) pour chaque transaction. Ces informations sont nécessaires et suffisantes pour la reprise sur panne 35

Défaire Les transactions non validées, L A, celles qui n ont pas de commit dans le journal L algorithme de Undo prend chaque T de L A, dans l ordre inverse d exécution. Puis, pour chaque write(t, x, old_val, new_val), on écrit old_val dans x. 36

Refaire Les transactions validées, L V : pour lesquelles on trouve un commit(t) dans le log L algorithme de Redo prend chaque T de L V, dans l ordre d exécution. Puis, pour chaque write(t, x, old_val, new_val), on écrit new_val dans x. Et si la reprise subit une panne? Il faut recommencer : le Redo est idempotent. 37

L algorithme de reprise Undo/Redo C est le plus général. on constitue la liste des transactions actives L A et la liste des transactions validées L V au moment de la panne ; on défait les écritures de L A attention les annulations se font dans l ordre inverse de l exécution initiale ; on refait les écritures de L V avec le journal. 38

À propos des checkpoints En cas de panne, il faudrait en principe refaire toutes les transactions du journal, depuis l origine de la création de la base. Un checkpoint écrit sur disque tous les blocs modifiés, ce qui garantit que les données validées par commit sont dans la base. 39

Résumé : reprise sur panne Undo/Redo Retenir : Le log contient la liste des transactions validées ; la liste des transactions annulées. Une reprise ne prend en compte que celles depuis le dernier checkpoint. La reprise consiste à parcourir le log et à défaire les transactions annulées, puis refaire les transactions validées. Schéma général : variantes dans les systèmes, voir exercices. 40

Semaine 5 : Reprise sur panne 1. Introduction 2. Lectures et écritures, buffer et disque 3. Première approche 4. Le journal des transactions 5. Algorithmes de reprise sur panne 6. Pannes de disque 41Philippe Rigaux

Panne d un disque Panne la plus grave, car on risque de perdre l état de la base. Solution : la réplication. Réfléchissons. 1. L état de la base est dans le fichier journal. 2. L état de la base est aussi dans le fichier de la base et le buffer. Constat : pour qu il y ait réplication, il est impératif de stocker la base et le log sur deux disques distincts. 42

Cas 1 : panne du disque de la base Solution de base : On réinstalle un disque pour la base. On ré-exécute toutes les transactions du log. Inconvénients : Phase de latence longue au moment du redémarrage. Implique de conserver tous les log depuis l origine. 43

Panne du disque de la base : avec sauvegarde Une sauvegarde S t est une copie de l état de la base à un instant t. Avec S t, il suffit de réappliquer le log depuis t. 44

Illustration Avec une sauvegarde datant du 15 mars, et un fichier log par jour. On applique à la sauvegarde les transactions depuis le 15 mars. 45

Cas 2 : panne du disque du log Rappel : l état de la base est dans les fichiers et le buffer. On gère la panne en effectuant un checkpoint on écrit les blocs modifiés sur le disque de la base, on fait les réparations nécessaires et on redémarre. Assez fragile : quid en cas de panne électrique et panne du disque de log? 46

Cas 2, avec réplication du log On peut répliquer le log pour plus de sûreté. Et pourquoi ne pas répliquer la base? On obtient un système distribué : c est pour la semaine prochaine. 47

Résumé : les pannes de disque Retenir : Le log et la base doivent être sur des disques distincts. Il faut mettre en place une politique de sauvegarde. La reprise combine choix de la sauvegarde et application du log. En principe, on garantit la durabilité. Sûreté totale? Obtenue (asymptotiquement) par réplication. Une des motivations des systèmes distribués. 48