- Em sistemas modernos, colisões de timestamps em nanossegundos são comuns e ocorrem em cerca de 5% das amostras quando o relógio é lido simultaneamente em 4 núcleos físicos.
- Não é seguro presumir que timestamps brutos em nanossegundos sejam identificadores únicos.
- Usando um programa de teste escrito em Go, foram comparadas as diferenças relativas entre timestamps consecutivos e timestamps absolutos.
- O comportamento das colisões de timestamp varia conforme o sistema, e resultados diferentes foram observados no Mac OS X e no Linux.
- No Linux, dentro de uma única thread, o tempo absoluto e o tempo monotônico sempre aumentam, e o incremento mínimo é de 32 ns. Entre threads, cerca de 5% dos tempos absolutos são iguais aos de outra thread e, mesmo ao executar com 2 threads em um sistema de 4 núcleos, ainda ocorrem cerca de 2% de colisões de timestamp.
- No Mac OS X, como o tempo absoluto tem resolução de microssegundos, muitas colisões ocorrem ao repetir o mesmo teste. Até mesmo dentro de uma thread, o relógio monotônico às vezes pode não aumentar.
- Para exploração adicional, o programa de teste pode ser encontrado no Github.
1 comentários
Comentários do Hacker News