Tri Externe - PowerPoint PPT Presentation

About This Presentation
Title:

Tri Externe

Description:

Tri Externe Chapitre 13: 13.1 13.5 – PowerPoint PPT presentation

Number of Views:99
Avg rating:3.0/5.0
Slides: 17
Provided by: RaghuRa114
Category:
Tags: externe | mining | sequence | tri

less

Transcript and Presenter's Notes

Title: Tri Externe


1
Tri Externe
  • Chapitre 13 13.113.5

2
Pourquoi Trier?
  • Problème classique en informatique (Voir Knuth,
    v.3)!
  • Données requises en ordre trié
  • P.ex. Trouver les étudiants en ordre croissant
    de gpa
  • Chargement en vrac de lindex à arbre B
  • Élimination des duplicatas dans une collection
    denregistrements
  • Algorithme de merge-sort join (jointure à
    tri-fusion)
  • Problème commun trier des données trop larges
    pour tenir en mémoire

3
Merge Sort à 2 Voies Requiert 3 Tampons
  • Passage 1 Lire une page, la trier (en mémoire),
    lécrire sur disque.
  • seulement une page tampon utilisée
  • Passage 2, 3, , etc.
  • trois pages tampon utilisées

ENTREE 1
SORTIE
ENTREE 2
Mémoire principale
Disque
Disque
4
Merge Sort Externe à 2 Voies
Fichier
6,2
2
3,4
9,4
8,7
5,6
3,1
  • A chaque passage on lit et écrit chaque page du
    fichier gt 2N I/Os par passage.
  • N pages dans le fichier gt
  • de passages
  • Doù le coût total est
  • Idee Divide et impera trier des sousfichiers
    et fusionner.
  • Dans lexemple, le fichier dentrée contient 7
    pages les pages noires montrent ce qui se
    passerait avec 8 pages.

PASSAGE 0
runs de 1page
1,3
2
3,4
5,6
2,6
4,9
7,8
PASSAGE 1
4,7
1,3
2,3
runs de 2 pages
8,9
5,6
2
4,6
PASSAGE 2
2,3
4,4
1,2
runs de 4 pages
6,7
3,5
6
8,9
PASSAGE 3
1,2
2,3
3,4
runs de 8 pages
4,5
6,6
7,8
9
5
Merge Sort à 2 Voies Algorithme
  • proc two-way_extsort(file)
  • // Trier un fichier sur disque en utilisant 3
    pages tampons
  • // Passage 0 produit des runs dune page
  • Lire chaque page du fichier dans la mémoire, le
    trier et lécrire.
  • //Fusionner des paires de runs pour produire de
    plus long runs
  • // jusquà ce quil ne reste quun seul run
  • While de runs à la fin du passage précédent gt
    1 do
  • //Traiter les passages i1,2,
  • While il y a des runs à fusionner issus du
    passage précédent do
  • Prendre les 2 runs suivants du
    passage précèdent.
  • Lire chaque run dans un tampon dentrée, 1
    page à la fois.
  • Fusionner les runs et écrire le résultat dans
    le tampon de sortie en
  • forçant le contenu de ce tampon vers le disque
    page par page.
  • endproc

6
Merge Sort Externe Général
  • Comment utiliser plus de 3 tampons?
  • Pour trier un fichier avec N pages en utilisant B
    pages tampon
  • Passage 0 utiliser B pages tampon. Produit
    runs triés de B pages chacune.
  • Passage 2, , etc. fusionner B-1 runs.

ENTREE 1
. . .
. . .
ENTREE 2
. . .
SORTIE
ENTREE B-1
Disque
Disque
B tampons en mémoire
7
Merge Sort Externe Général Algorithme
  • proc two-way_extsort(file)
  • // Trier un fichier sur disque en utilisant B
    pages tampons
  • // Passage 0 produit des runs de B pages
  • Lire B pages du fichier dans la mémoire, les
    trier et les écrire.
  • //Fusionner B-1 runs pour produire de plus long
    runs
  • // jusquà ce quil ne reste quun seul run
  • While de runs à la fin du passage précédent gt
    1 do
  • //Traiter les passages i1,2,
  • While il y a des runs à fusionner issus du
    passage précédent do
  • Prendre les B-1 runs suivants du
    passage précèdent.
  • Lire chaque run dans un tampon dentrée, 1
    page à la fois.
  • Fusionner les runs et écrire le résultat dans
    le tampon de sortie en
  • forçant le contenu de ce tampon vers le disque
    page par page.
  • endproc

8
Coût du Merge Sort Externe
  • Nombre de passages
  • Coût 2N ( de passages)
  • P.ex., avec 5 pages tampon, trier un fichier de
    108 pages
  • Passage 0 22 runs triés de 5
    pages chacune (le dernier nayant que 3 pages)
  • Passage 1 6 runs triés de 20
    pages chacune (le dernier avec seulement 8 pages)
  • Passage 2 2 runs triés, 80 pages et 28 pages
  • Passage 3 fichier trié de 108 pages

9
Nombre de Passages du Triage Externe
10
I/O pour le Merge Sort Externe
  • de plus longs runs signifient souvent moins de
    passages!
  • Les algorithmes présentés font des I/O dune page
    à la fois.
  • En pratique, on lit un bloc de pages
    sequentiellement!
  • Suggestion les tampons devraient contenir des
    blocs de pages et non des pages individuelles.
  • En pratique, la plupart des fichiers sont triés
    en 2-3 passages.
  • Des DBMSs typiques trient 1M denreg.s de la
    taille de 100 bytes en 15 minutes.

11
Nombre de Passages du Triage Optimisé
  • Taille des Blocs 32, le passage initial
    produit des runs de 2B.

12
Double Tampons
  • Afin de réduire le temps dattente pour que une
    requête I/O soit complétée, on peut prélire les
    données dans un bloc de réserve.
  • Potentiellement, plus de passages sont possibles
    en pratique, la plupart des fichiers sont
    toujours triés en 2-3 passages.

ENTREE 1
ENTREE 1'
ENTREE 2
SORTIE
ENTREE 2'
SORTIE'
b
Taille de bloc
Disque
ENTREE k
Disque
ENTREE k'
B tampons en mémoire, fusion à k voies
13
Utilisation des Arbres B pour Trier
  • Scénario La table à trier a un indexe à arbre B
    sur les colonnes de triages.
  • Idée Puiser les enregistrements dans lordre en
    traversant les feuilles de lindexe.
  • Est-ce une bonne idée ?
  • Cas à considérer
  • Lindex B est groupé Bonne idée!
  • Lindex B est non groupé Pourrait être une
    très mauvaise idée!

14
Index B Groupé Utilisé pour Trier
  • Coût partir de la racine à la feuille la plus à
    gauche et de là traverser toutes les pages
    feuilles (Alternative 1)
  • Si lalternative 2 est utilisée? Coût
    additionnel de puiser les enreg.s des données
    chaque page puisée juste une fois.

Index
(Oriente la recherche)
Entrees des donnees
("Sequence set")
Enregistrements des données
  • Toujours meilleur que le triage externe!

15
Index B Nongroupé Utilisé pour Trier
  • Alternative (2) pour les entrées des données
    chaque entrée contient le rid dun enregistrement
    des données. En général, un I/O par
    enregistrement des données!

Index
Entrées des données
Données
16
Résumé
  • Le triage externe est important un SGBD peut
    dédier une partie de la réserve des pages tampon
    juste pour cette tâche!
  • Le merge sort externe minimalise les coûts des
    entrées et sorties vers le disque
  • Passage 0 Produit des runs triés de taille B (
    de page tampon). Les passages suivants sont des
    runs de fusion.
  • Le de runs fusionnés à la fois dépend de B et
    de la taille du bloc.
  • Bloc de large taille gt petit de runs à
    fusionner.
  • Les index à arbre B groupé sont bons pour le
    triage externe les index nongroupés sont
    généralement très mauvais.
Write a Comment
User Comments (0)
About PowerShow.com