- Sur les systèmes modernes, les collisions de timestamps à la nanoseconde sont fréquentes et apparaissent dans environ 5 % des échantillons lorsque l’on lit l’horloge simultanément sur 4 cœurs physiques.
- Il n’est pas prudent de supposer qu’un timestamp brut à la nanoseconde constitue un identifiant unique.
- À l’aide d’un programme de test écrit en Go, l’auteur a comparé les différences relatives entre des timestamps consécutifs et des timestamps absolus.
- Le comportement des collisions de timestamps varie selon les systèmes, et des résultats différents ont été observés sur Mac OS X et Linux.
- Sous Linux, au sein d’un seul thread, le temps absolu et le temps monotone augmentent toujours, avec un incrément minimal de 32 ns. Entre les threads, environ 5 % des temps absolus sont identiques à ceux d’un autre thread, et même avec 2 threads sur un système à 4 cœurs, on observe encore environ 2 % de collisions de timestamps.
- Sur Mac OS X, le temps absolu a une résolution à la microseconde, ce qui provoque de nombreuses collisions lors de la répétition du même test. Même à l’intérieur d’un thread, l’horloge monotone peut parfois ne pas augmenter.
- Le programme de test est disponible sur Github pour poursuivre l’exploration.
1 commentaires
Avis sur Hacker News