Hacker News new | ask | show | jobs
by orf 34 days ago
AKA centralising a decentralised identifier generator?
2 comments

There are better approaches like pre -avoiding collisions but generating tends to be more expensive than checking.
UUID is used where checking is difficult, think distributed devices offline at a plantation. How could checking be easier in that case? It would require infrastructure that doesn't exist. There are many other cases where it's easier to handle collisions.
Agreed. While it's an uncommon scenario it is a significant case and UUID shouldn't be used in that case because as you write checking doesn't work well. Better to use an alternative such as coordinate/reserve monotonic producer IDs that get paired with monotonic, per-producer monotonic sequence IDs to produce guaranteed unique, well-ordered IDs.

[edit: in IOT it's common to issue x509 certificates as a type of authentication which could be used instead of using producer IDs. Solutions always have to be paired to use case.]

In what world is generating a UUID more expensive than checking for duplicates? at any scale?

Walk me through that please

Yeah, that was a little sloppy but it's generating is more expensive than not generating. In more words, generating an id and validating uniqueness is more expensive than only validating uniqueness.

   Wild edge case. Curious if they ever found the root cause.
Welcome to Hacker News.

I suspect you meant to reply to a different comment. Regardless the most plausible speculation I've read here is that the RNG used to generate the UUID is low quality.

exactly lmao. that is exactly what is being presented as "scalable <full stop>". sigh.
No one has yet defined the scale but almost all of the real world scenarios people are actually encountering would be handled by either of the offered solutions.
as would be a million things that don’t involve using uuids at all. it literally means nothing to say “this can be handled by centralizing your uuid store”… if you do that, you DON’T NEED UUIDS. THAT IS THE POINT!
You seem to be insisting that UUID meets the promise of it's name, despite the long standing documentation to the contrary. Is that your intention?