fbpx
Wikipedia

Snowflake ID

Snowflake IDs, or snowflakes, are a form of unique identifier used in distributed computing. The format was created by Twitter and is used for the IDs of tweets. It is popularly believed that every snowflake has a unique structure, so they took the name "snowflake ID". The format has been adopted by other companies, including Discord and Instagram. The Mastodon social network uses a modified version.

1757376102277316608
Snowflake ID
Other namesTwitter Snowflake
Components of a snowflake identifier in binary

Format edit

Snowflakes are 64 bits in binary. (Only 63 are used to fit in a signed integer.) The first 41 bits are a timestamp, representing milliseconds since the chosen epoch. The next 10 bits represent a machine ID, preventing clashes. Twelve more bits represent a per-machine sequence number, to allow creation of multiple snowflakes in the same millisecond. The final number is generally serialized in decimal.[1]

Snowflakes are sortable by time, because they are based on the time they were created.[1] Additionally, the time a snowflake was created can be calculated from the snowflake. This can be used to get snowflakes (and their associated objects) that were created before or after a particular date.[2]

Fixed header format
Offsets Octet 0 1 2 3
Octet Bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 Timestamp
4 32 Machine ID Machine Sequence Number

Example edit

A tweet produced by @Wikipedia in June 2022[3] has the snowflake ID 1541815603606036480. The number may be converted to binary as 00 0001 0101 0110 0101 1010 0001 0001 1111 0110 0010 00|01 0111 1010|0000 0000 0000, with pipe symbols denoting the three parts of the ID.

  • The first 41 (+ 1 top zero bit) bits convert to decimal as 367597485448. Add the value to the Twitter Epoch of 1288834974657 (in Unix time milliseconds),[4] the Unix time of the tweet is therefore 1656432460.105: June 28, 2022 16:07:40.105 UTC.
  • The middle 10 bits 01 0111 1010 are the machine ID.
  • The last 12 bits decode to all zero, meaning this tweet is the first tweet processed by the machine at the given millisecond.

Usage edit

The format was first announced by Twitter in June 2010.[5] Due to implementation challenges, they waited until later in the year to roll out the update.[6]

  • Twitter uses snowflake IDs for tweets, direct messages, users, lists, and all other objects available over the API.[7]
  • Discord also uses snowflakes, with their epoch set to the first second of the year 2015.[2]
  • Instagram uses a modified version of the format, with 41 bits for a timestamp, 13 bits for a shard ID, and 10 bits for a sequence number.[8]
  • Mastodon's modified format has 48 bits for a millisecond-level timestamp, as it uses the UNIX epoch. The remaining 16 bits are for sequence data.[9]

See also edit

References edit

  1. ^ a b "twitter-archive/snowflake at b3f6a3c6ca". GitHub. October 1, 2012. Retrieved January 18, 2021.
  2. ^ a b "API Reference". Discord Developer Portal. Discord. Retrieved January 18, 2021.
  3. ^ @Wikipedia (June 28, 2022). "53 years ago today, members of the LGBTQI+ community began protesting in New York City in response to a police raid of the Stonewall Inn, a popular gay bar. The riots were a transformative event in the 20th century fight for LGBTQI+ rights in the US. (1/2)" (Tweet) – via Twitter.
  4. ^ "2019-08-03: TweetedAt: Finding Tweet Timestamps for Pre and Post Snowflake Tweet IDs". 2019-08-03.
  5. ^ King, Ryan (June 1, 2010). "Announcing Snowflake". blog.twitter.com. Twitter. Retrieved January 18, 2021.
  6. ^ Siegler, MG (October 12, 2010). "Tweet IDs About To Get Jumbled In A Blizzard As Snowflake Is Set To Roll Live". TechCrunch. Retrieved January 18, 2021.
  7. ^ "Twitter IDs". Twitter Developer. Twitter. Retrieved January 20, 2021.
  8. ^ "Sharding & IDs at Instagram". Instagram Engineering. May 2, 2016. Retrieved January 18, 2021.
  9. ^ Source Code mastodon/mastodon, Mastodon, November 11, 2022, retrieved November 11, 2022

External links edit

  • Twitter's reference implementation on GitHub

snowflake, snowflakes, form, unique, identifier, used, distributed, computing, format, created, twitter, used, tweets, popularly, believed, that, every, snowflake, unique, structure, they, took, name, snowflake, format, been, adopted, other, companies, includi. Snowflake IDs or snowflakes are a form of unique identifier used in distributed computing The format was created by Twitter and is used for the IDs of tweets It is popularly believed that every snowflake has a unique structure so they took the name snowflake ID The format has been adopted by other companies including Discord and Instagram The Mastodon social network uses a modified version 1757376102277316608Snowflake IDOther namesTwitter SnowflakeComponents of a snowflake identifier in binary Contents 1 Format 1 1 Example 2 Usage 3 See also 4 References 5 External linksFormat editSnowflakes are 64 bits in binary Only 63 are used to fit in a signed integer The first 41 bits are a timestamp representing milliseconds since the chosen epoch The next 10 bits represent a machine ID preventing clashes Twelve more bits represent a per machine sequence number to allow creation of multiple snowflakes in the same millisecond The final number is generally serialized in decimal 1 Snowflakes are sortable by time because they are based on the time they were created 1 Additionally the time a snowflake was created can be calculated from the snowflake This can be used to get snowflakes and their associated objects that were created before or after a particular date 2 Fixed header format Offsets Octet 0 1 2 3Octet Bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 310 0 Timestamp4 32 Machine ID Machine Sequence NumberExample edit A tweet produced by Wikipedia in June 2022 3 has the snowflake ID 1541815603606036480 The number may be converted to binary as 00 0001 0101 0110 0101 1010 0001 0001 1111 0110 0010 00 01 0111 1010 0000 0000 0000 with pipe symbols denoting the three parts of the ID The first 41 1 top zero bit bits convert to decimal as 367597485448 Add the value to the Twitter Epoch of 1288834974657 in Unix time milliseconds 4 the Unix time of the tweet is therefore 1656432460 105 June 28 2022 16 07 40 105 UTC The middle 10 bits 01 0111 1010 are the machine ID The last 12 bits decode to all zero meaning this tweet is the first tweet processed by the machine at the given millisecond Usage editThe format was first announced by Twitter in June 2010 5 Due to implementation challenges they waited until later in the year to roll out the update 6 Twitter uses snowflake IDs for tweets direct messages users lists and all other objects available over the API 7 Discord also uses snowflakes with their epoch set to the first second of the year 2015 2 Instagram uses a modified version of the format with 41 bits for a timestamp 13 bits for a shard ID and 10 bits for a sequence number 8 Mastodon s modified format has 48 bits for a millisecond level timestamp as it uses the UNIX epoch The remaining 16 bits are for sequence data 9 See also editUniversally unique identifierReferences edit a b twitter archive snowflake at b3f6a3c6ca GitHub October 1 2012 Retrieved January 18 2021 a b API Reference Discord Developer Portal Discord Retrieved January 18 2021 Wikipedia June 28 2022 53 years ago today members of the LGBTQI community began protesting in New York City in response to a police raid of the Stonewall Inn a popular gay bar The riots were a transformative event in the 20th century fight for LGBTQI rights in the US 1 2 Tweet via Twitter 2019 08 03 TweetedAt Finding Tweet Timestamps for Pre and Post Snowflake Tweet IDs 2019 08 03 King Ryan June 1 2010 Announcing Snowflake blog twitter com Twitter Retrieved January 18 2021 Siegler MG October 12 2010 Tweet IDs About To Get Jumbled In A Blizzard As Snowflake Is Set To Roll Live TechCrunch Retrieved January 18 2021 Twitter IDs Twitter Developer Twitter Retrieved January 20 2021 Sharding amp IDs at Instagram Instagram Engineering May 2 2016 Retrieved January 18 2021 Source Code mastodon mastodon Mastodon November 11 2022 retrieved November 11 2022External links editTwitter s reference implementation on GitHub Retrieved from https en wikipedia org w index php title Snowflake ID amp oldid 1190427332, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.