Snowflake ID-urile, sau snowflake-urile, sunt o formă de utilizat în calculul distribuit. Formatul a fost creat de Twitter și este folosit pentru ID-urile tweet-urilor, dar a fost adoptat și de alte companii, între care Discord și Instagram, care utilizează o versiune modificată.

Format Snowflake-urile au 64 de biți, dintre care doar 63 sunt folosiți pentru a încăpea într-un număr întreg cu semn. Primii 41 de biți sunt o marcă temporală, reprezentând milisecunde de la un ales. Următorii 10 biți reprezintă un ID de mașină, care previne coliziunile. Încă doisprezece biți reprezintă un număr de secvență pe mașină, pentru a permite crearea mai multor snowflake-uri în aceeași milisecundă. Numărul final este în general serializat în zecimal.

Snowflake-urile se pot sorta în funcție de timp, deoarece se bazează pe momentul de timp la care au fost creați. În plus, ora la care a fost creat un snowflake poate fi calculată din valoare. Aceasta poate fi folosită pentru a obține snowflake-urile (și obiectele asociate acestora) care au fost create înainte sau după o anumită dată.

Exemplu Un tweet produs de @Wikipedia în iunie 2022 are snowflake ID-ul . Numărul poate fi convertit în binar ca , unde simbolurile separă cele trei părți ale ID-ului.

Primii 41 de biți (+bitul de semn) se convertesc în zecimal la . Se adaugă acest număr la reperul de timp folosit de Twitter, a (în milisecunde de ), ora Unix a tweet-ului este, prin urmare: 16:07:40.105 UTC. Cei 10 biți din mijloc, sunt ID-ul mașinii. Ultimii 12 biți sunt zero, ceea ce înseamnă că acest tweet este primul tweet procesat de mașină la milisecunda dată.

Utilizare Formatul a fost anunțat pentru prima dată de Twitter în iunie 2010. Din cauza problemelor de implementare, abia la sfârșitul anului s-a lansat actualizarea care l-a inclus. Twitter folosește snowflake ID-uri pentru tweet-uri, mesaje directe, utilizatori, liste și toate celelalte obiecte disponibile prin API.

Discord folosește și el snowflake-uri, dar reperul de timp față de care se calculează este prima secundă a anului 2015.

Instagram folosește o versiune modificată a formatului, în care 41 de biți reprezintă marca temporală, 13 biți sunt un ID și 10 biți sunt număr de secvență.

Note

Legături externe

Categorie:Identificatori