UUID stands for Universal Unique Identifier. It is a 128-bit number used for uniquely identifying some object or entity on the Internet. It relies upon a combination of components to ensure uniqueness. UUID is used for creating random file names, session id in web application, and transaction id. The four different basic types of UUIDs are time-based, DCE security, name-based, and randomly generated UUIDs. The guaranteed UUID consists of a reference to the network address of the host that generated the UUID, a timestamp, and a randomly generated component can guarantee uniqueness across space and time. It ensures uniqueness because the network address identifies a unique computer, and the timestamp (a record of the precise time of a transaction) is unique for each UUID generated from a particular host. The randomly generated element of the UUID is added as a protection against any unforeseeable problem.
UUID is defined by RFC 4122, ISO/IEC 9834-8:2005, and related standards and some systems refer this as a globally unique identifier(GUID). UUID is a 128-bit quantity. The meaning of each bit in UUID is defined by any of several variants. It is generated by an algorithm chosen to make it very unlikely that the same identifier will be generated by anyone else using the same algorithm. In distributed systems, it provides a better uniqueness guarantee than sequence generators, which are only unique within a single database. It is written as a sequence of lower-case hexadecimal digits. UUIDs were first used in the Apollo Network Computing System and later in the Open Software Foundation’s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.
A UUID can be specified as part of the tModel data structure, the tModel data structure represents a service in the UDDI (Universal Description, Discovery, and Integration) registry and it is an abstraction for a technical specification of a service type. This mechanism is used to discover Web services. The tModel consists of a name, an explanatory description, and a Universal Unique Identifier (UUID). The main intent of UUIDs is to enable distributed systems to uniquely identify information without any significant central coordination also UUIDs can be used to identify DVD drives, removable media (USB flashsticks), and each partition on any hard drives. Since the finite size of identifiers, it is possible for two differing items to share the same identifier. The size and generation process of the identifier need to be selected, so as to make this sufficiently improbable in practice. Anyone can create a UUID and it allows to identify something with reasonable confidence that the same identifier will never be unintentionally created by anyone to identify something else. Information labeled with UUIDs are later combined into a single database without needing to resolve identifier (ID) conflicts.
Structure of UUID
1) The first three numbers are generated from a timestamp.
2) The fourth number preserves temporal uniqueness in case the timestamp value loses monotonicity (for example, due to daylight saving time).
3) The fifth number is an IEEE 802 node number that provides spatial uniqueness. A random number is substituted if the latter is not available (for example, because the host computer has no Ethernet card, or we do not know how to find the hardware address of an interface on your operating system). In this case, spatial uniqueness cannot be guaranteed. Nevertheless, a collision should have very low probability.
To get the current UUIDs of the hard disks
# ls -l /dev/disk/by-uuid
# blkid /dev/sda1
Features of UUID
1) Truly unique identification.
2) Generate RFC4122 version 1 or version 4 UUIDs.
3) Runs in node.js and all browsers.
4) Cryptographically strong random # generation on supporting platforms
5) 1185 bytes minified and gzip’ed (Want something smaller? Check this crazy shit out!)
6) Annotated source code.
7) Device names are not always persistent.
If you need any further assistance please contact our support department.