Tagged Command Queuing

Une définition du Jargon Français.
Aller à : Navigation, rechercher

Dr enus.png locution nominale, masculin.  [disque]. Mode d'amélioration des performances d'une unité de stockage mécanique, en particulier un disque dur, consistant à le laisser réordonner les requêtes afin de réduire les déplacements de têtes nécessaires, tout en ménageant un droit de préemption.

Cela n'a guère de sens si l'unité n'est pas mécanique, donc par exemple avec un disque électronique ou un RAM-disque offrant un temps d'accès constant (pas de tête physique à déplacer!).

Un disque n'accepte pas les requêtes en permanence. De toutes façons les lui passer à mesure interdit de les grouper par zones concernées, ce qui ralentit les traitements car augmente le temps moyen de déplacement des têtes entre les requêtes.

Si les processus en cours d'exécution réclament, par exemple, tout d'abord une lecture du bloc (ou du secteur, peu importe ici) situé sur le cylindre numéro 30, une autre d'un bloc du cylindre 11 puis de 16 il sera vraisemblablement rentable de les présenter au disque dans l'ordre 11, 16, 30 (ou peut-être « 30, 16, 11 », si les têtes se trouvent plus près du bloc 30) afin d'éviter de leur infliger des aller-retours. Cela réduit la latence et l'usure mécanique. Ce genre d'algorithme est de type ascenseur (sens 2).

Tout bon système d'exploitation réordonne ainsi les requêtes en instance afin de réduire les déplacements des têtes. Ce classement est d'ordinaire assuré par les routines d'un ensemble appelé I/O scheduler, intégré au système d'exploitation ou (surtout dans le cas du RAID matériel) au contrôleur disque.

Le TCQ est intégré au disque et complète ou remplace cela en prenant en compte l'état interne de ce dernier, donc en fonction d'informations relatives à une activité de très bas niveau inaccessible aux éléments extérieurs, en particulier la position physique réelle des têtes et, relativement à elles, des secteurs. Il réordonne donc les requêtes afin que les têtes puissent accéder à toutes les données en un temps minimal, dont en un nombre minimal de rotations complètes des plateaux. C'est assuré par une logique embarquée sur un disque dur et respecte, de surcroît, le contenu d'une balise associée à chaque requête qui exprime sa priorité relative.

C'est rentable si l'accès aléatoire règne (le cas-type est celui d'un serveur d'OLTP) mais, en moyenne, réduit les performances des accès séquentiels (par exemple du streaming ou de l'OLAP) et d'une machine employée par un seul utilisateur.

Durant longtemps seul le SCSI-2 (et de rares disques ATA tardifs) permettait cela, c'est pourquoi il était préféré sur les serveurs. Puis NCQ, quasi équivalent, arriva.

Abrégé TCQ.

Direction.png Pour aller plus loin: SSF.