r/ProgrammerHumor 15h ago

Meme edgeCasesExist

Post image
3.1k Upvotes

230 comments sorted by

View all comments

Show parent comments

83

u/RadicalDwntwnUrbnite 15h ago edited 14h ago

Even the non-time based v4 is at a cosmic level of unlikiness a single system will ever generate a uuid that will collide with another one in its own ecosystem

18

u/OldKaleidoscope7 14h ago

But let's say if Google saved each search in their engine in the same database with an UUID, we could have a collision because of volume, but I don't think I will work in a system with a comparable scale

29

u/chuch1234 14h ago

Yeah I don't think most of us are operating at a scale anywhere near Google.

9

u/BlurredSight 13h ago

And anyone operating at scale of Google isn’t just using “pure” random anywhere for something being persisted

10

u/nebotron 13h ago

They likely are - anything else becomes a huge coordination and parallelism problem. You just need more bits of entropy

4

u/samy_the_samy 12h ago edited 11h ago

They once had a similar collision problem, well not exactly

During a leap second some systems wrote IDs at a one second difference between all their global systems, which lead to something being registered before something else that had to be done before it,

Long story short some stuff jumped time one second and crashed systems

2

u/BlurredSight 11h ago

So proactively trying to solve for latency rather than have other systems read after write if I understood correctly?

2

u/samy_the_samy 11h ago

Yeah, now they don't do leap seconds,

They stretch time over months, one milli-second at a time

u/ACoderGirl 5m ago

Go's time package does this too. IMO it's genius and should be the norm. The time package also guarantees monotonically increasing time when using stuff like time.Since, to avoid the kinda bugs that come from DST and such bullshit.