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'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 au système un droit de préemption.

Abrégé TCQ.

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 programmes 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).

Donc tout bon système d'exploitation, durant les périodes de latence, réordonne les requêtes (issues des programmes) en instance afin de réduire les déplacements des têtes, effectués mécaniquement donc ralentissant les traitements. 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.