mardi, juillet 10, 2012

La Seconde intercalaire

Alors que le 30 juin 2012 s'effaçait pour laisser naître le 1 juillet 2012, à l'heure paradoxale de 23 h. 59 m. 60 s. (UTC), les ingénieurs systèmes de Reddit, LinkedIn, FourSquare, Gawker ou encore de StumbleUpon furent confrontés aux premiers crashs majeurs de leurs sites Web. Le bel ordonnancement horloger de tous les traitements massivement distribués des datacenters pharaoniques déraillait brutalement, butant sur un dérisoire grain de sable : une modeste seconde. La seconde intercalaire.

 

Cet épisode secondaire de la vie du Net nous rappelle que la Nature est obstinée et que sa complexité est bien têtue à se manifester avec ironie, même dans les constructions les plus abstraites de l'esprit humain. La seconde intercalaire, de création récente (1972), vient corriger, en plus ou en moins, les différences occasionnelles constatées entre le Temps universel coordonné (UTC) — adopté comme base du temps civil international par la plupart des pays et fondé depuis 1972 sur le Temps atomique international (TAI) — et le Temps universel (TU) — basé sur la rotation de la Terre pour calculer la durée du jour, qui a remplacé, toujours en 1972, le fameux Temps moyen de Greenwich (GMT). La vitesse de rotation de la Terre est éminemment variable ; la planète est sujette à des accélérations et des ralentissements, soumise qu'elle est à sa physique interne et à la cosmologie. Les secondes intercalaires ainsi rajoutées ou supprimées apaisent alors les querelles de famille chroniques entre leurs cousines si pressées : la seconde atomique, née en 1967 lors de la 13e Conférence générale des poids et mesures comme étant la durée de 9 192 631 770 périodes de la radiation correspondant à la transition entre les deux niveaux hyperfins de l'état fondamental de l'atome de césium 133, et la seconde universelle, aussi vieille que l'humanité, dérivée de l'observation du mouvement des étoiles, de la Lune, de radio-sources extragalactiques et de satellites artificiels de la Terre — dans toutes ses mutations génétiques UT0, UT1, UT1R ou UT2.

 

La RATP fournit aimablement à ses usagers une introduction à la physique quantique et à la cosmologie à la portée de tous, qui illustre parfaitement ce phénomène. À la station de métro La Motte-Picquet Grenelle, par exemple, un même quai sépare la ligne 8 (Balard - Créteil Pointe du Lac) et la ligne 10 (Boulogne Pont de Saint-Cloud - Gare d'Austerlitz) ; deux panneaux d'affichage jointifs annoncent les temps d'attente des deux prochains trains sur chacune des deux lignes. Tout voyageur peut alors de visu constater quotidiennement que même lorsque des temps identiques sont affichés côte à côte, leur écoulement est différent suivant la ligne et que les rames ne débouchent jamais simultanément de leurs tunnels respectifs : le temps de la ligne 8 n'est pas celui de la ligne 10. On pourrait y voir un effet de la relativité restreinte, les durées perçues dans un référentiel en mouvement par rapport à un autre dépendent de sa vitesse, mais un autre phénomène exposé par la RATP pour l'édification des masses ferait plutôt pencher pour une explication quantique. Reproduisant l'expérience de Michelson-Morley et démontrant la nature à la fois ondulaire et corpusculaire de la matière, il arrive en effet que, d'après l'affichage, le délai d'attente du passage du deuxième train devienne inférieur à celui du passage du premier. Interférence et diffraction quantiques font ainsi ne sortir du tunnel qu'une seule et même rame dont on ne sait — principe d'incertitude de Navigo-Heinsenberg — s'il s'agit de la première, de la seconde ou d'une combinaison linéaire probabiliste des deux.

 

Pour ajouter à ces difficultés mécaniques, le Temps universel coordonné est sous la responsabilité de l'Union internationale des télécommunications (ITU), et la mesure de la rotation de la Terre sous celle de l'International Earth Rotation and Reference System Service (IERS), créé par l'Union astronomique internationale et l'Union géodésique et géophysique internationale en 1987. Le Temps atomique international, en revanche, est défini par le Bureau international des poids et mesures, au parc de Saint Cloud à Paris (ligne 9 plutôt) — établi en 1875 (Convention du Mètre), on en doit l'origine à la renaissance scientifique due aux mathématiciens-ingénieurs français des Lumières, notamment à Gaspard Monge, inventeur de la métrologie et promoteur du système décimal. Et cependant c'est du Bureau central de l'IERS, situé à l'Observatoire de Paris — bien antérieur quant à lui à la Révolution puisqu'instauré avec l'Académie royale des sciences par Louis XIV et Colbert en 1666 — que se décide l'introduction des secondes intercalaires et qu'elles sont annoncées par un bulletin d'information, le Bulletin C, publié tous les 6 mois.

 

Vingt-cinq petites secondes ont ainsi été rajoutées subrepticement au plus profond de certaines nuits du 30 juin ou de celles du 31 décembre depuis 1972. Les quatre dernières secondes intercalaires sont exactement contemporaines de Google : 1998, une longue période d'harmonie synchrone, puis 2005, 2008 et donc 2012. Dans un blog publié en septembre dernier, Christopher Pascoe, Gardien du temps à Google, expliquait que les effets de la seconde intercalaire d'à peine visibles en 2005 — sans parler de 1998 où le moteur de recherches n'était qu'un projet estudiantin à google.stanford.edu — étaient déjà sensibles lors de son injection suivante en 2008. Afin d'anticiper l'impact des secondes intercalaires à venir sur la synchronisation de leurs serveurs toujours plus nombreux, le groupe Site Reliability Engineering mit à profit ces quelques années pour altérer insensiblement son implémentation de NTP, Network Time Protocol, le protocole de télécommunications dédié à la diffusion du temps du Net.

 

NTP est consubstantiel à Internet. Les premières versions du protocole évoquent immédiatement la figure des pères fondateurs du Net, en particulier celle de Jon Postel (1943-1998) co-auteur de la plupart des standards et éditeur des fameuses RFC. Publiés en 1983, les Daytime Protocol et Time Protocol (RFC867 et RFC868) sur lesquels il travaille alors seront la fondation du travail d'une vie, celle de David L. Mills, professeur à l'Université du Delaware en retraite depuis 2008, consacrée à l'élaboration et l'évolution de NTP. Car synchroniser deux ordinateurs, a fortiori bien plus, sur le réseau se révèle à proprement parler titanesque — dans la cosmogonie orphique Chronos n'est-il pas le père de Chaos et d'Ether ? Qu'un simple Net et vingt-cinq siècles séparent de Chaosnet et d'Ethernet, grands précurseurs d'Internet. La mesure du temps circule du ou des serveurs NTP vers les clients par le réseau lui-même. Son temps de diffusion dépend de l'état du réseau et du trafic, autant de paramètres qui doivent être pris en compte par le client NTP au moment d'effectuer la synchronisation.

 

En effet, le protocole stipule que quatre mesures « statistiques » sont actualisées à chaque échange entre serveur NTP et client NTP. Le theta représente l'écart le plus probable entre le temps du serveur et celui de l'horloge système ; le delta représente le délai de communication entre le client et le serveur ; l'epsilon est la dispersion, l'erreur maximale dans la mesure, proportionnelle à tolérance maximale de la fréquence de l'horloge système ; enfin, le psi définit la gigue, la racine carrée moyenne des délais précédemment constatés dans les échanges. Le protocole NTP spécifie des algorithmes de réconciliation, dits Byzantins, pour traiter l'ensemble des valeurs des theta, delta, epsilon et psi récupérées de plusieurs serveurs NTP par un client NTP donné suivant une fréquence calculée en fonction de sa propre horloge système. Le temps du Net est donc une abstraction d'une abstraction, le temps universel UTC. Il apparait codé sur 128 bits comprenant un numéro d'ère, un temps écoulé depuis le début de cette ère en secondes (sur 64 bits comptant jusqu'à 564 milliards d'années) et fractions de secondes (sur 64 bits comptant jusqu'à l'attoseconde, i.e 18 chiffres après la virgule). Ainsi quelques dates essentielles pour le temps du Net :

 

  • 1 janvier 1970, le premier jour UNIX : Ère NTP 0, Temps NTP 2 208 988 800 ;
  • 1 janvier 1972, le premier jour UTC : Ère NTP 0, Temps NTP 2 272 060 800 ;

mais aussi :

 

  • 4 octobre 1582, dernier jour du calendrier Julien : Ère NTP -3, Temps NTP 2 873 647 488 ;
  • et prochain changement d'ère NTP, le 8 février 2036 marque le passage de l'ère 0, entamée le 1 janvier 1900, à l'ère 1.

Le paquet NTP est un datagramme UDP dont l'en-tête contient les dates d'émission et de réception et différentes informations dont le champ LI (Leap Indicator), soit 2 bits qui annoncent qu'une seconde intercalaire est à prévoir pour le dernier jour du mois en cours. Le champ rfid sur 32 bits identifie la source de l'information de temps véhiculée par le paquet. Dans la v4 du protocole actuellement en vigueur, ces sources sont des satellites en orbite géostationnaire, le NIST, l'Observatoire naval américain (USNO), le système GPS, le système Galileo et différentes radio-horloges réparties dans le monde — dont une à Fukushima (LF Radio JJY Fukushima, JP 40 kHz, Saga, JP 60 kHz ) et une autre à Allouis dans le Cher.

 

Les en-têtes et le contenu temporel des paquets permettent d'actualiser les statistiques utilisées par le client NTP pour la sélection des temps à retenir parmi ceux envoyés par les serveurs contactés, puis pour la combinaison des temps choisis en une indication chronologique finale employée pour synchroniser l'horloge locale. L'algorithme de Marzullo employé dans NTP renvoie directement aux algorithmes de gestion de cache mémoire et de gestion de « vote », ou de sélection d'un candidat lorsque plusieurs valeurs sont en compétition. Cette classe d'algorithmes est à nouveau un sujet d'étude frénétique depuis le succès des datacenters dans lesquels le calcul lui-même est distribué à un nombre (grand) arbitraire de serveurs suivant leur disponibilité instantanée. Ils sont en effet indispensables pour ré-assembler les résultats de ces calculs, éliminer les erreurs éventuelles et assurer cohérence et intégrité des données.

 

Chez Google, par exemple, ce même type d'algorithme est utilisé abondamment pour un service de verrouillage des données dans le cadre de traitements transactionnels, sous le nom de Chubby. Les services critiques de Google, comme GFS (le Google File System) et BigTable mettent tous en oeuvre l'algorithme Chubby — les papiers de référence sur ces mécanismes de consensus réparti dans un contexte de communications asynchrones restent ceux de Leslie Lamport sur la famille de protocoles Paxos et de Brian Oki et Barbara Liskov du MIT à l'époque. On comprend mieux l'impact d'une perturbation de l'exécution des algorithmes centraux à NTP sur les algorithmes similaires qui leurs sont reliés tant su côté serveur que du côté client. La solution originale de Google fut de « tricher » et de faire tourner une version maison de NTP dans laquelle l'indicateur LI n'est volontairement jamais déclenché, mais le temps distribué est légèrement altéré d'une milliseconde dans les mille échanges précédant l'injection de la seconde surnuméraire. (Le cas de la suppression de la seconde intercalaire ne s'est pas produit depuis 1998.) Ainsi la modification subreptice est étalée dans le temps et présente, de ce fait, moins de risques de blocage des traitements qui en dépendent, notamment ceux de gestion de cache et de bases de données chez le géant de Mountain View. Google freine l'allongement du temps du Net !

 

L'option inverse est très sérieusement en débat à l'Union internationale astronomique et à l'ITU où la discussion porte sur l'abolition pure et simple de ces secondes intercalaires devenues problématiques, tant notre vie économique est devenue dépendante du réseau, et leur remplacement éventuel par des « heures intercalaires » à intervalles moins fréquents. Ce ne serait pas une première : en 1582, le dernier jour du calendrier Julien, le 4 octobre, fut immédiatement suivi du premier jour du calendrier Grégorien, le 15 octobre — soit une bonne dizaine de jours intercalaires, provoquant l'émoi qu'on imagine dans la population affolée !

 

Et pendant ce temps-là, intercalaire ou non, la Fondation Long Now fait forer une immense caverne dans une montagne à l'ouest du Texas pour y bâtir et y installer la 10000 Year Clock, une horloge qui fonctionnera en totale autonomie, sans intervention humaine, vestale moderne d'une exactitude rigoureuse à la seconde près pendant les dix prochains millénaires...

 

ShareThis