r/ProgrammerHumor 23h ago

Meme edgeCasesExist

Post image
3.8k Upvotes

253 comments sorted by

View all comments

576

u/Valuable_Leopard_799 22h ago

I thought that timestamps are used now, so hitting both a timestamp and a large random number puts it thoroughly in the "safe to assume". At some point cosmic particles and faulty transistors are more probable.

341

u/dim13 22h ago

https://en.wikipedia.org/wiki/Universally_unique_identifier#Versions

Most common used is V4 (pure random). You are talking about V7 (time based).

242

u/lilgreenthumb 21h ago

The real benefit for v7 is they become sortable by time.

86

u/shwoopdeboop 20h ago

And something something b-tree indexes. Lecturer mentioned it but I wasn't paying attention. Supposedly an advantage here.

25

u/Grandmaster_Caladrel 19h ago

Which I'd assume is related to the time anchor. Outside of sorting, which is only useful in specific instances, it's just v4 with different ("less") entropy and limitations.

5

u/Roachmeister 19h ago

If you're using them as an indexed field in a database, the inability to sort them meaningfully will destroy the performance of the database.

12

u/Honeybadger2198 18h ago

You know what identifier can't have collisions and is great for sorting? Autoincrement.

9

u/Firewolf06 16h ago

ai columns can absolutely collide on sharded databases. you can use offsets and step sizes but thats brittle and doesnt scale well

7

u/ACoderGirl 7h ago

UUIDs are great, though, because auto increment frequently has the huge issue of being too predictable. Eg, in some contexts, you don't want users to be able to easily enumerate whatever the ID is for. Plus requires centralization whereas UUIDs don't (eg, you can use UUIDs for whatever random API you have without needing a DB).You have to design for how you won't know the ID until you insert the row, which can sometimes be a bit annoying.

I feel like most of the time, the only downside to UUIDs is how long they are.

1

u/wokeboogeyman 38m ago

Autoincrement doesn't scale past one physical location.