5 ms·
A random-number scheme provides a way for any entity to generate an identifier without collaboration (this is why GUIDs are so popular). Your scheme, yes, provi
by hollasch 3y ago
A random-number scheme provides a way for any entity to generate an identifier without collaboration (this is why GUIDs are so popular). Your scheme, yes, provides a way to assign guaranteed unique identifiers, but at the cost of a centralized generator — both a performance and an authority bottleneck.
- Waterluvian 3y agoLet’s be pedantic: neither the quoted sentence nor the response said anything about random.
- IIAOPSW 3y agoHash the name and the time of birth. Done.
- SideQuark 3y agoHash collisions exist.
- throwawaytemp29 3y agoEleanor and Fake Elaneanor would disagree, although that was time of death.
- riffic 3y agonames are not that easy though. https://shinesolutions.com/2018/01/08/falsehoods-programmers-believe-about-names-with-examples/ https://shinesolutions.com/2018/01/08/falsehoods-programmers...
- ACow_Adonis 3y agohow many john smith do you think are born in the US? to what degree do you think birth times are actually rounded rather than accurately recorded? very much not done :)
- IIAOPSW 3y agoWell, if your timestamps include yy/mm/dd, I presume it would be exceedingly unlikely to get a collision even with rounding the hours and mins and secs.
- majormajor 3y agoWhat? What are we being pedantic about here exactly? The quoted sentence is found immediately below the heading "19 random digits is not enough to uniquely identify all human beings" in the linked article. So... actually, it is specifically talking about random numbers. And then the response... > If I assigner the numbers, I would carefully print 8 billion or so slips with different numbers, and place them in an urn. For each person, I'd draw from the urn, and then the probability of me assigning the same number to two humans is related to IT failures during generation. How many dollar bills share a serial number unintentionally? Is pretty blatantly describing a randomization procedure, if not going quite so over-explaining far to say "I draw from an urn without replacement and with some level of randomization to my movements and without knowledge or any tactile or other hints of which slip of paper is which"...
- LeifCarrotson 3y agoOK, how about this procedure: 1. Give the first person who asks the number 0000000000000000001. 2. Give the next person the previous person's number plus one. 3. Repeat. The drawing-from-an-urn randomization or hashing is unnecessary if you just start with 8 billion or more numbers.
- bee_rider 3y agoThat is an alternative procedure, but it doesn’t seem (?) to provide any advantages over the randomized in a urn procedure, and it also doesn’t seem to remove the centralization problem.
- xboxnolifes 3y agoThe advantage is not needing to hold 8 billion numbers of state. Instead you only need to keep track of a single number.
- LeifCarrotson 3y agoWhy is randomization important? And centralization likewise seems unimportant, as generating or sending a single auto-incrementing index number is really, really fast. This is literally the technique I use at work for keeping track of part numbers: There's a single server that my individual CAD users can ask for a part number to describe the components of their assemblies, it does nothing but generate sequential, unique numbers. Engineers can't draw millions of parts per second, so it just works...and there's no probabilistic element with associated birthday paradox to the uniqueness of those IDs. There are only 4.5 people born per second for this hypothetical server to handle in the long term. And at INSERT speeds of something like 3M/second, you could theoretically handle the initial storm of requests to serve all current living humans in about an hour. With 2^64 records, this scheme should be good for about 100 billion years assuming population growth levels off. That's a long time for that assumption to hold true, but I think optimizing for an event that might be only 50 billion years away is a little premature (also, the timeout when querying this server from Alpha Centauri might limit your transaction rate, but again, premature optimization).
- zie 3y agoSure, but that performance bottle neck is a pittance. On my old x86 MacBook Pro using python, I generated 18B numbers in well under a minute.