5 poin oleh GN⁺ 2023-07-23 | 1 komentar | Bagikan ke WhatsApp
  • Pada sistem modern, tabrakan stempel waktu nanodetik adalah hal yang umum, dan terjadi pada sekitar 5% sampel saat jam dibaca secara bersamaan di 4 inti fisik.
  • Tidak aman untuk mengasumsikan bahwa stempel waktu nanodetik mentah adalah pengenal unik.
  • Dengan menggunakan program uji yang ditulis dalam Go, perbedaan relatif antara stempel waktu berurutan dan stempel waktu absolut dibandingkan.
  • Perilaku tabrakan stempel waktu berbeda-beda tergantung sistem, dan hasil yang berbeda diamati di Mac OS X dan Linux.
  • Di Linux, dalam satu thread, waktu absolut dan waktu monoton selalu meningkat, dengan kenaikan minimum 32 ns. Antar-thread, sekitar 5% waktu absolut sama dengan thread lain, dan bahkan saat bekerja dengan 2 thread pada sistem 4 inti, sekitar 2% tabrakan stempel waktu tetap terjadi.
  • Di Mac OS X, waktu absolut memiliki resolusi mikrodetik sehingga banyak tabrakan terjadi saat pengujian yang sama diulang. Bahkan di dalam thread, jam monoton kadang-kadang bisa tidak meningkat.
  • Untuk penelusuran lebih lanjut, program uji dapat ditemukan di Github.

1 komentar

 
GN⁺ 2023-07-23
Pendapat Hacker News
  • Konflik dapat dihindari dengan menggunakan ID yang menggabungkan komponen waktu dan nomor urut.
  • UUIDv7 adalah contoh ID yang menggabungkan komponen waktu dan nomor urut.
  • Penjadwalan thread dapat memengaruhi keakuratan stempel waktu pada sistem multi-core.
  • UUID versi 4 (acak) dapat digunakan untuk menjamin pengenal unik.
  • Beberapa orang menyelesaikan masalah konflik dengan pemeriksaan waktu serta pengujian dan penyetelan atomik pada variabel global.
  • Erlang/Elixir membedakan waktu monotonik dan waktu monotonik ketat.
  • Jam komputer mungkin tidak memiliki presisi nanodetik.
  • Ada legenda bahwa Lotus Notes menggunakan stempel waktu dengan resolusi 1 detik sebagai ID unik.
  • Siklus clock CPU dan optimisasi kompilator dapat memengaruhi presisi stempel waktu.
  • Waktu yang akurat dapat menjadi masalah keamanan, sehingga perancang CPU sengaja memperkenalkan clock jitter.