人によっては今更だけれど某/.の記事で知ったので、ちょいと調べてみた。
このあたりの定数と式がコアな部分かな。
53bit超えの精度で計算出来ない事が意外と多い。googleも計算してくれなかったりするのでWolfram|Alphaを使う。
twitter.com/#!/quolc/status/156410708081377280 twitter.com/#!/quolc/status/156409454324232194 twitter.com/#!/quolc/status/156407150216884224 twitter.com/#!/quolc/status/155965255229509632 twitter.com/#!/quolc/status/155964655032991744 twitter.com/#!/quolc/status/155964103226167296 twitter.com/#!/quolc/status/155953308895412224 twitter.com/#!/t_n_tommy/status/157348397970493440 twitter.com/#!/t_n_tommy/status/157133936789692416 twitter.com/#!/t_n_tommy/status/157132545325142016 twitter.com/#!/SoVeryAwkward/status/157247986714423296 twitter.com/#!/SoVeryAwkward/status/157232924117315586 twitter.com/#!/SoVeryAwkward/status/157215634772594690 twitter.com/#!/ddlovato/status/157314029247938560 twitter.com/#!/ddlovato/status/157308852327563264 twitter.com/#!/ddlovato/status/157274729412165632
http://www.wolframalpha.com/input/?i=156410708081377280+%25+%28+2+%5E+12+%29
いくつか2だが、あとは0。探すと奇数のもあって1だったりするから、1がないのはたまたまかな?
sequenceのカウンタ部分は以下だが、これが回ることがあるのはさすがtwitter。
http://www.wolframalpha.com/input/?i=%28+156410708081377280+%3E%3E12+%29%25%28+2+%5E+5+%29
若干動く感じ。概ね0-4かな?
http://www.wolframalpha.com/input/?i=%28+156410708081377280+%3E%3E17+%29%25%28+2+%5E+5+%29
これは全部1。地域差があるのかと思ったけど同じだった。
twitter.com/#!/koizuka/status/145146329490927622 twitter.com/#!/musuka__bot/status/145146343462154244 twitter.com/#!/Royal_Host/status/145146355013267458 twitter.com/#!/SNOOPYbot/status/145146357689225220
sequenceはさすがに回り気味だが、意外にもworkerId、datacenterIdは相変わらずっぽい。
まあ、25千tpsらしいので、キューで均されてsequence*workerが5*5くらいあれば回せるという事なのかな?
ちなみに日時の計算はこんな感じ。確かにその通り。
日時はソース通り、datacenterIdは1、workerIdは0-4、sequenceは、平時なら概ね0、回っても2まで。
今の所それが自然っぽい。