6) Why not restrict IDs to 53bits?
A Snowflake ID is composed:
* 41bits for millisecond precision time (69 years)
* 10bits for a configured machine identity (1024 machines)
* 12bits for a sequence number (4096 per machine)
The factor influencing the length of the ID is the time. For a 53bit ID this
would mean only 31bits are available for the time. 31bits is only enough for
24 days (2147483648/(1000*60*60*24)) of time.
Reducing the resolution of the timestamp would prevent a K-sorted resolution
of 1 second or less.
Reducing the configured machine identity or sequence number by 1bit would
mean we couldn’t scale Twitter, or operate our infrastructure in an
uncoordinated high-available way.
Interesting ... so you have the theoretical capacity to scale to 2**22
(about 4 million) tweets per millisecond? Even 4 million tweets a
second seems unrealistic, as does a single "machine" only being able
to generate 4096 IDs. I think if you're really expecting this kind of
volume, the FPGA vendors probably can help you out. We are talking
robust linear regressions? ;-)
Ah, well, I'll check back on you guys in 69 years to see how you're
holding up. ;-)
M. Edward (Ed) Borasky
"A mathematician is a device for turning coffee into theorems." - Paul Erdos
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: