News for hackers. Stuff that matters.
Re:How long do GUIDs really need to be? by jacques_chester on Friday October 31, 2014 @04:06PM (#8540843)
> UUIDs are really unnecessarily long for no good reason.

Their purpose is to be universally unique, presumably indefinitely. The practical choice is to align on a power of 2.

When UUIDs were invented, they were based on a MAC address plus a timestamp. MAC addresses are 48 bits, leaving 16 bits. Of these, between 1 and 3 are used up giving the variant code and another four bits are used giving the version code.

If they'd used 64 bits, there'd be between 8 and 11 bits left for a unique timestamp. Which is OK, but not a very strong guarantee for a "unique" scheme.

As it happens the length has made it possible to create multiple versions of UUIDs that are generated in different ways. UUID has been successful at separating the concerns of the structure of the ID from how it is generated. Most alternative schemes are effectively implementation-defined.

Re:How long do GUIDs really need to be? by zackbloom on Friday October 31, 2014 @04:10PM (#8540860)
This is all true, and I'm not here to say the original implementers did anything wrong. As you say though, UUIDs are a general solution, which means they're not going to be optimal for every problem.
Re:How long do GUIDs really need to be? by jacques_chester on Friday October 31, 2014 @04:13PM (#8540873)
No, but I think most people overoptimise on the shiny stuff ("oooooh, I saved some bits!") over the important stuff (nasty surprises, several years from now).
Re:How long do GUIDs really need to be? by ed0 on Friday October 31, 2014 @05:10PM (#8541153)
Yeah, but sometimes "saving some bits" is really important. It's also really inconvenient to work with UUIDS, like in writing SQL queries etc. The solution these guys came up with obviously works for them.
Re:How long do GUIDs really need to be? by wtbob on Saturday November 01, 2014 @09:10AM (#8542910)
> It's also really inconvenient to work with UUIDS, like in writing SQL queries etc.

http://www.postgresql.org/docs/8.3/static/datatype-uuid.html makes it look pretty easy…

Re:How long do GUIDs really need to be? by scardine on Friday October 31, 2014 @06:03PM (#8541317)
Precisely the argument from Dilbert's Y2K episode: http://www.tv.com/shows/dilbert/y2k-12015/
Re:How long do GUIDs really need to be? by lmm on Saturday November 01, 2014 @05:57AM (#8542620)
How are these eager.io IDs any easier to work with in SQL queries etc.?
Re:How long do GUIDs really need to be? by JoeAltmaier on Friday October 31, 2014 @04:12PM (#8540867)
UUIDs are optimal for every problem, in that they are unique and fairly fast to generate. There can be no better solution than that, except maybe to save a few bits. And we're only talking about 16 bytes here; not much to complain about. They're cheap at the price.
Re:How long do GUIDs really need to be? by JoeAltmaier on Friday October 31, 2014 @04:47PM (#8541049)
Yeah its hard to get folks to come into the modern age of computering. FOr some reason there's tremendous resistance to abandoning the old crusty buggy solutions (indexes and handles that collide and need remapping) and using stuff that just works (identifying everything immutable with a uuid). Folks say 'its too many bits' and 'it takes too long'. Then they proceed to write megabytes worth of patchy code to try and save 64 bits worth of identifier.
Re:How long do GUIDs really need to be? by JoeAltmaier on Friday October 31, 2014 @05:05PM (#8541128)
As for database efficiency, that's a problem. But its a problem with the database - certainly no comfort for the user. But databases could do better, and I think they will one day come to handle uuids with less grief to the developer.
Re:How long do GUIDs really need to be? by jacques_chester on Friday October 31, 2014 @06:29PM (#8541415)
They already do. Postgres and SQL Server have UUID types.
Re:How long do GUIDs really need to be? by wtbob on Saturday November 01, 2014 @09:12AM (#8542916)
Yeah, exactly. Building weakness into one's protocol because of an unhealthy attachment to saving a few bits and an even more unhealthy attachment to MySQL just seems foolish.
Re:How long do GUIDs really need to be? by jayvanguard on Friday October 31, 2014 @11:27PM (#8542096)
If you work with large amounts of data it hugely matters. 16 bytes times 1 billion records ends up being way more than 16GB of data, indexes, foreign keys, hot backup, etc. to manage and query.
Re:How long do GUIDs really need to be? by JoeAltmaier on Saturday November 01, 2014 @08:51AM (#8542865)
Even that is a small amount of memory. I have that much RAM on my computer. See, its an obsolete conversation, yet folks raised in an ecology of scarcity can't get past it.
Re:How long do GUIDs really need to be? by roganp on Saturday November 01, 2014 @11:03AM (#8543271)
It depends on what you are optimizing for. If you need to store your entire database in physical memory, then the difference between 16GB and 128MB is significant.
Re:How long do GUIDs really need to be? by tracker1 on Friday October 31, 2014 @09:26PM (#8541907)
UUIDs are 128-bits...
Re:How long do GUIDs really need to be? by jacques_chester on Friday October 31, 2014 @10:05PM (#8541965)
> If they'd used 64 bits