5 puan yazan GN⁺ 2023-07-23 | 1 yorum | WhatsApp'ta paylaş
  • Modern sistemlerde nanosaniye zaman damgası çakışmaları yaygındır ve saat aynı anda 4 fiziksel çekirdekten okunduğunda örneklerin yaklaşık %5'inde görülür.
  • Ham nanosaniye zaman damgalarının benzersiz tanımlayıcılar olduğunu varsaymak güvenli değildir.
  • Go ile yazılmış bir test programı kullanılarak ardışık zaman damgaları ile mutlak zaman damgalarının göreli farkları karşılaştırıldı.
  • Zaman damgası çakışmalarının davranışı sisteme göre değişir; Mac OS X ve Linux'ta farklı sonuçlar gözlemlendi.
  • Linux'ta tek bir thread içinde mutlak zaman ve monotonic zaman her zaman artar ve en küçük artış 32 ns'tir. Thread'ler arasında ise mutlak zamanın yaklaşık %5'i başka bir thread ile aynıdır; 4 çekirdekli bir sistemde 2 thread ile çalışıldığında bile yaklaşık %2 oranında zaman damgası çakışması meydana gelir.
  • Mac OS X'te mutlak zaman mikrosaniye çözünürlüğüne sahip olduğundan, aynı test tekrarlandığında çok sayıda çakışma oluşur. Hatta bazen aynı thread içinde bile monotonic saat artmayabilir.
  • Daha fazla inceleme için test programı GitHub'da bulunabilir.

1 yorum

 
GN⁺ 2023-07-23
Hacker News görüşü
  • Zaman bileşeni ile sıra numarasını birleştiren bir ID kullanmak çakışmaları önleyebilir.
  • UUIDv7, zaman bileşeni ile sıra numarasını birleştiren ID'lere bir örnektir.
  • Thread scheduling, çok çekirdekli sistemlerde zaman damgalarının doğruluğunu etkileyebilir.
  • Sürüm 4 (rastgele) UUID'ler, benzersiz tanımlayıcıları garanti etmek için kullanılabilir.
  • Bazı insanlar çakışma sorununu zaman kontrolü ile global bir değişken üzerinde atomik test-and-set kullanarak çözer.
  • Erlang/Elixir, monotonic time ile strictly monotonic time arasında ayrım yapar.
  • Bilgisayar saatleri nanosaniye hassasiyetine sahip olmayabilir.
  • Lotus Notes'un benzersiz ID olarak 1 saniye çözünürlüklü zaman damgaları kullandığına dair bir rivayet vardır.
  • CPU clock cycle'ları ve compiler optimization, zaman damgalarının hassasiyetini etkileyebilir.
  • Doğru zaman bir güvenlik sorunu olabilir; bu yüzden CPU tasarımcıları bazen kasıtlı olarak clock jitter ekler.