snowflake

snowflake構造について

タグ アルゴリズムとデータ構造


  • twitterIDのユニーク化をするアルゴリズム
  • 時間に対して昇順になっていることが保証される点がただのハッシュと異なる

構造

  1  sign bit -- not used, always 0?
 41 bits (milliseconds since epoch) - 1288834974657L
  5  bits datacenter id
  5  bits machine id
 12 bit sequence number

pythonでsnowflakeからUTCに戻す

datetime.datetime.fromtimestamp(((snowflake >> 22)+1288834974657)/1000)

参考

  • https://github.com/client9/snowflake2time
  • https://github.com/cablehead/python-snowflake
  • https://github.com/twitter-archive/snowflake