On pourrait penser que la synchronisation des horloges sur une flotte de serveurs modernes est un problème résolu, mais c’est en fait un défi assez difficile à résoudre, surtout si vous voulez atteindre une précision à la nanoseconde. Cela signifie également qu’il reste un axiome en informatique qu’il ne faut jamais construire un système basé sur le temps d’horloge. Clockwork.io, qui annonce aujourd’hui un financement de série A de 21 millions de dollars, promet de changer cela avec une précision de synchronisation aussi faible que 5 nanosecondes avec des horodatages matériels et des centaines de nanosecondes avec des horodatages logiciels.
Sur la base de ces travaux, la société lance également aujourd’hui son premier produit, Latency Sensei, qui peut fournir à ses utilisateurs des données de latence extrêmement fines dans leurs environnements cloud, sur site et hybrides, qu’ils peuvent ensuite utiliser pour trouver des goulots d’étranglement et ajuster leurs réseaux. Les clients de la société incluent déjà des sociétés telles que Nasdaq, Wells Fargo et RBC.
La startup a été fondée par Yilong Geng, Deepak Merugu et Balaji Prabhakar, « VMware Founders Professor of Computer Science » de Stanford, avec le co-fondateur de VMware et professeur d’informatique de Stanford Mendel Rosenblum en tant que membre du conseil d’administration et scientifique en chef. Compte tenu du pedigree de ce groupe, il n’est pas surprenant que la recherche fondamentale derrière le système de Clockwork soit basée sur la recherche universitaire fondamentale que l’équipe a effectuée à Stanford.
Le protocole NTP (Network Time Synchronization Protocol), qui est le format standard que la plupart des ordinateurs utilisent aujourd’hui pour synchroniser les horloges, est omniprésent mais pas très précis. Il y a eu du travail pour améliorer cela, avec Facebook, par exemple, qui a contribué une solution matérielle au projet Open Compute l’année dernière, mais l’équipe Clockwork promet une bien plus grande précision.
« Parfois, dans les centres de données, je n’arrivais pas à les mettre d’accord sur une seconde. Mon téléphone et la station de base ici sont probablement d’accord sur le second. Ensuite, vous devenez de plus en plus fin et de plus en plus fin – jusqu’aux microsecondes et nanosecondes. C’est très difficile. Il est très difficile pour deux horloges de savoir exactement à quelle nanoseconde elles se trouvent », a expliqué Prabhakar. Il a noté qu’il n’est pas non plus suffisant de synchroniser ces horloges une fois. Vous devez également les maintenir synchronisés. Vous pouvez mettre des horloges de haute précision qui sont insensibles aux variations de température et aux vibrations dans un serveur, mais cette horloge deviendrait rapidement plus chère que le serveur lui-même.
Pour résoudre ce problème, l’équipe a construit un système et un modèle d’apprentissage automatique qui lui permettent de mesurer très précisément le temps nécessaire à un horodatage pour arriver sur un serveur donné. Ce n’est pas si différent du fonctionnement de NTP, mais l’équipe va ensuite plus loin en examinant une variété d’horodatages, puis en obtenant à la fois le décalage de l’horloge et la différence de fréquence relative. Tout cela alimente ensuite le modèle d’apprentissage automatique. De plus, l’équipe a également construit le système pour que les différentes horloges puissent communiquer entre elles et détecter (et corriger) lorsqu’elles ne sont pas synchronisées.
En l’absence d’horodatages fiables, les systèmes distribués ont longtemps dû s’appuyer sur des conceptions sans horloge, ce qui ajoute un niveau supplémentaire de complexité à la construction de systèmes complexes. L’équipe Clockwork espère que ses travaux permettront aux chercheurs d’expérimenter de nouveaux algorithmes basés sur le temps dans un certain nombre de domaines problématiques tels que la cohérence des bases de données, l’ordre des événements, les protocoles de consensus et les registres.
La recherche originale de l’équipe de Rosenblum et Prabhakar portait sur ce que vous pourriez faire si vous pouviez faire confiance aux horloges d’un système distribué.
« Actuellement, personne n’utilise son temps, sauf peut-être Spanner chez Google, CockroachDB ou quelqu’un qui s’occupe de bases de données », a déclaré Rosenblum. « Nous pensons qu’il y a beaucoup plus de places, d’autant plus que de plus en plus de choses urgentes se présentent. Nous pouvons faire la synchronisation de l’heure, puisque nous avons assez bien compris comment le faire. Et donc nous avons demandé : est-ce que cela fait partie d’une tendance où nous allons commencer à programmer ces systèmes différemment ? Et [researchers] Je me suis un peu enthousiasmé à l’idée que nous puissions y parvenir.
Ainsi, les problèmes de synchronisation étant résolus, l’équipe Clockwork cherche maintenant à créer des produits en plus de cela, à commencer par Latency Sensei. Mais Prabhakar a également noté que l’équipe travaille déjà sur un autre projet qui facilite la détection de la congestion à l’intérieur des centres de données. TCP, a-t-il noté, est idéal pour les réseaux étendus, mais à l’intérieur du centre de données, c’est un gaspillage considérable. Mais lorsque vous en saurez plus sur le réseau – et ses latences – cela pourrait à son tour être utilisé pour fournir au protocole TCP de meilleures indications sur la meilleure façon d’acheminer les paquets à l’intérieur du centre de données.
Le cycle de série A de la société a été mené par NEA, avec la participation d’investisseurs providentiels bien connus, dont le cofondateur de MIPS, John Hennessy, le premier investisseur de Google, Ram Shriram, et le cofondateur de Yahoo, Jerry Yang.