2015-03-17 18 views
5

Instagram blog post about sharded ID generation numaralı telefonu arıyorum. Bu blog yazısı, 64 bit tanımlayıcıları oluşturmayı açıklar. Onların mekanizması milisaniye zaman damgası 64 bit 41 ayırır ve derler: ZamanaMilisaniye kaç kez zaman damgası, 41 bit ile temsil edilebilir?

  • 41 bit milisaniye
(özel çağın bize kimlikleri 41 yıl verir)

Bu bir yazım hatası mı? 41 bit'de 69 yıllık milisaniye zaman damgalarını depolayabileceğinizi hesapladım.

  • Azami milisaniye 41 bit saklanan: İşte nasıl (^ 41 2) -1 = 2199023255551 ms
  • (1000 * 60 * 60 * 24 * 365) ms/yıl = 69 yıl
  • bölündüğünde

Peki, nerede yanlışım?

+0

Matematik işleminiz bitti, yani bu bir yazım hatası ya da sizin yaptığınız şeyden başka, bu bitlerle bir şeyler yapıyorlar. :-) – templatetypedef

+1

@ templatetypedef teşekkürler. Beni aptal gibi hissettiriyordu/beni delirtiyordu. –

+0

Google 'milisaniye 2199023255551', birçok sonuç teorinizi destekliyor – DeDee

cevap

8

Hesaplamada yanlış değilsiniz. senin sonucu (69 years) ile yakın

(2^41)-1 ms 
    == 2199023255.551 s 
    == 610839.7932086 hr 
    == 25451.65805036 days 
    == 69.6828 Julian years 
    == 69.6843 Gregorian Years 

Hangi çizgiler kadar.

Ancak, bağlantı web 41 bits özel çağında ile onlara kimlik

41 yıl verdiğini yazıyor

"Epoch" bu bağlamda muhtemelen başlangıç ​​tarihinden bahsediyor . Bu makalenin "3 yıl önce" yayınlandığını veya 2012 numaralı telefondan yayınlandığını göz önüne alarak, onların döneminin 2012 + 41 - 69 == 1984 numaralı telefondan başladığını hesaplayabiliriz. Bu tarih muhtemelen a reference olarak seçilmiştir.

+0

Bu çıkışı almak için hangi programı kullandınız? – favilo

+0

Oh Sadece el yazdım. Muhtemelen dönüşümleri Google’da veya elden –