Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. UUIDs are so funny today because almost all of their deployments is "we take a string of mostly-random bits but give it structure for no apparent reason"

UUIDs are so funny today because almost all of their deployments is "we take a string of mostly-random bits but give it structure for no apparent reason"

Scheduled Pinned Locked Moved Uncategorized
22 Posts 12 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

    it's true that you could populate some of those bits with predictable sequences to avoid clashing (a la snowflake) but guess what: you can do this to a hex string or a number (as does snowflake). i think the only reason UUIDs are as popular as they are today is Microsoft?

    nyovaya@transfem.socialN This user is from outside of this forum
    nyovaya@transfem.socialN This user is from outside of this forum
    nyovaya@transfem.social
    wrote last edited by
    #12

    @whitequark@social.treehouse.systems I thought Microsoft made GUIDs popular?

    whitequark@social.treehouse.systemsW 1 Reply Last reply
    0
    • nyovaya@transfem.socialN nyovaya@transfem.social

      @whitequark@social.treehouse.systems I thought Microsoft made GUIDs popular?

      whitequark@social.treehouse.systemsW This user is from outside of this forum
      whitequark@social.treehouse.systemsW This user is from outside of this forum
      whitequark@social.treehouse.systems
      wrote last edited by
      #13

      @nyovaya they are the same thing

      1 Reply Last reply
      0
      • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

        UUIDs are so funny today because almost all of their deployments is "we take a string of mostly-random bits but give it structure for no apparent reason"

        wrosecrans@mstdn.socialW This user is from outside of this forum
        wrosecrans@mstdn.socialW This user is from outside of this forum
        wrosecrans@mstdn.social
        wrote last edited by
        #14

        @whitequark Once constructed, I have literally never seen anybody ever care about the specific fields. There's no reason for it to be divided up asymmetrically because the only things people do with those sorts of uids is bit compare the whole thing, or print as text in hex.

        1 Reply Last reply
        0
        • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

          @casandro 124 bits of randomness is enough for basically any application where UUIDs are used as references

          casandro@f-ckendehoelle.deC This user is from outside of this forum
          casandro@f-ckendehoelle.deC This user is from outside of this forum
          casandro@f-ckendehoelle.de
          wrote last edited by
          #15

          @whitequark Yes, but it takes a lot of characters. Particulary in protocols like SIP where you don't want to spend a lot of bytes for your message (you don't want fragementation), having a SIP-stack that just puts in UUIDs can really cause problems. Plus for SIP you want a variable number of randomness for different parts. While you might want 64 bits for your Call-ID, the From:- and To:-Tags are fine with 16 bits.
          Again, every byte saved in the header saves you from problems.

          1 Reply Last reply
          0
          • dysfun@social.treehouse.systemsD dysfun@social.treehouse.systems

            @whitequark actually i remember microsoft more for GUIDs than UUIDs

            ramsey@phpc.socialR This user is from outside of this forum
            ramsey@phpc.socialR This user is from outside of this forum
            ramsey@phpc.social
            wrote last edited by
            #16

            @dysfun @whitequark GUIDs and UUIDs are the same, except for the order of the bytes in binary form. For UUIDs, all bytes are in network byte order (big-endian). In a GUID, the order of the bytes are reversed in each grouping for the first 64 bits and stored in little-endian order. The remaining 64 bits are stored in network byte order. Both string representations are the same. Who knows why. 🤷‍♂️

            1 Reply Last reply
            0
            • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

              it's true that you could populate some of those bits with predictable sequences to avoid clashing (a la snowflake) but guess what: you can do this to a hex string or a number (as does snowflake). i think the only reason UUIDs are as popular as they are today is Microsoft?

              ramsey@phpc.socialR This user is from outside of this forum
              ramsey@phpc.socialR This user is from outside of this forum
              ramsey@phpc.social
              wrote last edited by
              #17

              @whitequark Most applications that use UUIDs these days tend to use version 7 UUIDs, which use milliseconds since the Unix epoch as the most significant bits. This embeds the creation timestamp in the ID and allows for sorting, while also adding in sufficient randomness so they're not incremental and multiple systems can generate them with low probability of collision.

              whitequark@social.treehouse.systemsW saikou@gts.chuuni.solutionsS 2 Replies Last reply
              0
              • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

                UUIDs are so funny today because almost all of their deployments is "we take a string of mostly-random bits but give it structure for no apparent reason"

                slatian@pleroma.envs.netS This user is from outside of this forum
                slatian@pleroma.envs.netS This user is from outside of this forum
                slatian@pleroma.envs.net
                wrote last edited by
                #18

                @whitequark@treehouse.systems The "structure" makes them easier to handle for human brains and they are an RFC that is implemented in a lot of places.

                I'd say they've gotten developer experience right by accident.

                1 Reply Last reply
                0
                • ramsey@phpc.socialR ramsey@phpc.social

                  @whitequark Most applications that use UUIDs these days tend to use version 7 UUIDs, which use milliseconds since the Unix epoch as the most significant bits. This embeds the creation timestamp in the ID and allows for sorting, while also adding in sufficient randomness so they're not incremental and multiple systems can generate them with low probability of collision.

                  whitequark@social.treehouse.systemsW This user is from outside of this forum
                  whitequark@social.treehouse.systemsW This user is from outside of this forum
                  whitequark@social.treehouse.systems
                  wrote last edited by
                  #19

                  @ramsey oh, I didn't know this!

                  azonenberg@ioc.exchangeA 1 Reply Last reply
                  0
                  • ramsey@phpc.socialR ramsey@phpc.social

                    @whitequark Most applications that use UUIDs these days tend to use version 7 UUIDs, which use milliseconds since the Unix epoch as the most significant bits. This embeds the creation timestamp in the ID and allows for sorting, while also adding in sufficient randomness so they're not incremental and multiple systems can generate them with low probability of collision.

                    saikou@gts.chuuni.solutionsS This user is from outside of this forum
                    saikou@gts.chuuni.solutionsS This user is from outside of this forum
                    saikou@gts.chuuni.solutions
                    wrote last edited by
                    #20

                    @ramsey @whitequark yeah, at a previous job we used v7 uuids with for request IDs with a single-character signifying the source of the request and a freeform suffix (guaranteed to be delimited by a non-\w character for ease of splitting).

                    1 Reply Last reply
                    0
                    • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

                      it's true that you could populate some of those bits with predictable sequences to avoid clashing (a la snowflake) but guess what: you can do this to a hex string or a number (as does snowflake). i think the only reason UUIDs are as popular as they are today is Microsoft?

                      ratsnakegames@mastodon.socialR This user is from outside of this forum
                      ratsnakegames@mastodon.socialR This user is from outside of this forum
                      ratsnakegames@mastodon.social
                      wrote last edited by
                      #21

                      @whitequark i like UUIDs because someone else has already solved the problem of "how to make thing unique" for me and i don't have to think about it

                      1 Reply Last reply
                      0
                      • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

                        @ramsey oh, I didn't know this!

                        azonenberg@ioc.exchangeA This user is from outside of this forum
                        azonenberg@ioc.exchangeA This user is from outside of this forum
                        azonenberg@ioc.exchange
                        wrote last edited by
                        #22

                        @whitequark @ramsey I've only ever seen version 4 (unstructured random) in production that i can recall

                        1 Reply Last reply
                        1
                        0
                        • R relay@relay.infosec.exchange shared this topic
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups